所以我剛開始看看Play框架,我發現在示例中(http://www.playframework.org/documentation/2.0.4/JavaTodoList),似乎所有東西都是靜態的。我是那些人之一,但相信靜態不是一件好事,如果你需要靜態,你應該使用單身。有人能更熟悉這個遊戲框架嗎?請告訴我們這些靜態調用的思路是什麼,而不是更符合單例模式的東西?我明白我可以在初始靜態方法調用之後實現任何我想要的模式,但在我看來,在這裏可以做其他事情來限制靜態方法的使用。我今天再次看到了這個遊戲框架,所以我可能會錯過一些東西,所以請隨時給我啓發。謝謝。播放框架靜態方法無處不在
1
A
回答
3
Play的方法是無狀態的,而非靜態方法將狀態引入類。
Singleton模式在那裏也沒有真正的工作。用一個單例,你完全有一個全局的一個類的實例。這可以有4個可能的結果,這取決於您的定義(也許更多,但我想不出任何):
- 如果您的Singleton實例是狀態和全球意味着應用範圍,那麼多在同一個頁面的訪問者將共享相同的狀態(「哦,你看,我是用戶X了。這是奇怪的。」)
- 如果您的Singleton實例是狀態和全球意味着每個HTTP請求,然後喲你只是做一個新的「單身人士」,不要重用它,渲染Singleton模式(在我看來)是無用的。
- 如果你的單例實例是無狀態,那麼爲什麼還要生成它的一個實例,並設法準確地擁有一個?
第四點會是一個狀態的Singleton,其中全球意味着每個用戶。這實際上導致管理用戶會話的整潔方式。但它不是Play的方式。
+0
我不知道我同意你做的無狀態單身聲明。我完全同意利用無狀態方法,但我會爭辯說,無論何時,開發人員希望全局使用對象(不管全局範圍),該對象都不應該保持任何狀態。顯然這不是一條硬性規定,更像是一條指引線。 – peekay
相關問題
- 1. 播放框架javascript路由+非靜態方法
- 2. 播放框架+ GWT +寧靜
- 3. 播放框架 - 無法連接到postgresql
- 4. 播放框架「無法插入」異常
- 5. 無法設置cookie與播放框架
- 6. 播放框架無法轉換爲java.util.List
- 7. 播放框架無法識別錯誤?
- 8. jQuery無法使用播放框架
- 9. 路由到正在播放的靜態文件!框架2.0
- 10. 靜態方法在播放控制器中不起作用
- 11. MVC框架和靜態方法
- 12. 玩框架2 - 靜態方法
- 13. 幫助無法調用播放框架控制器中的非靜態方法模型?
- 14. 路由到靜態時出錯 - 播放框架
- 15. 爲404頁播放框架靜態資源(資產)
- 16. 播放框架中的錯誤處理
- 17. 播放框架形式錯誤處理
- 18. 通過播放框架處理JSON 1.2.3
- 19. 播放框架批處理文件
- 20. 播放框架NoClassDefFoundError
- 21. 播放框架CompilationException
- 22. 播放框架GUID
- 23. 播放框架1.2.4
- 24. AJAX播放框架
- 25. 播放框架掛
- 26. 播放框架db.play.JPA
- 27. Cron Job在播放框架
- 28. CConvertException正在播放!框架
- 29. 播放框架嚮導動態字段
- 30. 方法不會覆蓋播放框架Scala
重複的問題,並通過Guillaume博爾特回答http://stackoverflow.com/questions/5192904/play-framework-uses-a-lot-of-statics – Schleichardt