我有很多服務類在我的應用程序沒有任何狀態(任何領域,屬性),但有方法。我應該使這個類爲靜態或創建這個類的一個對象,並通過使用單個對象進行應用程序的生命週期類只有方法,應該是單身或靜態
2
A
回答
7
,如果你需要實現接口或從其他類派生你只需要這個類是一個單例。如果你沒有這個需求,那就去一個靜態類。
3
我應該使這個類爲靜態或創建此 類的一個對象,並通過使用單個對象進行 應用程序的生命週期
聲明爲static
類,所有的方法是static
。這會迫使你稍後在代碼中沒有實例成員。
您可能會看到:What is the difference between all-static-methods and applying a singleton pattern?
2
單身可以實現接口,而靜態類不能。所以如果你的代碼會受益於接口(例如依賴注入),那麼使用singleton其他明智的靜態將衝浪。
1
在大多數情況下,您可以使該類和它的成員靜態。但是,如果您計劃對服務類進行任何單元測試,您將需要一個實例來使用接口。由於您無法在靜態類上實現接口,因此您將需要使用單例模式並實現接口。
相關問題
- 1. 單身或靜態類
- 2. 工廠類應該是單例還是靜態方法?
- 3. 我應該去靜態方法還是非靜態方法?
- 4. 靜態方法VS單身
- 5. 只有靜態方法的輔助類聲明應該是什麼?
- 6. C#實用功能靜態方法/靜態類/單身模式
- 7. 只有靜態方法的類模塊
- 8. JAVA:什麼時候該類應該是靜態或動態的
- 9. 什麼是靜態類與只有靜態方法的類之間的區別?
- 10. PHP - 類中的靜態方法或只是一個函數
- 11. 靜態類vs單身類
- 12. 我應該使用靜態方法還是靜態字段
- 13. 單身或靜態 - 我應該使用什麼?
- 14. 我應該創建靜態方法還是抽象超類
- 15. 模型的泛型超類應該是靜態還是單態?
- 16. 在Dao類中使用靜態方法或非靜態方法?
- 17. 類自身的靜態方法?
- 18. 檢查類是否有靜態方法
- 19. 警告:靜態方法應該以靜態方式訪問
- 20. 如果我有隻有一個靜態變量的類 - 我應該聲明這個類是靜態的嗎?
- 21. createOperate方法不能被聲明爲靜態;靜態方法只能在靜態或頂級類型中聲明
- 22. 什麼是更好的:公共靜態類與靜態方法或公共類與靜態方法?
- 23. 模型類(在MVC中)應該使用靜態方法還是實例方法?
- 24. 如果返回類型是靜態也該方法是靜態的
- 25. 靜態方法可能只對一類
- 26. 單身或靜態類還是兩者都不?
- 27. 輪詢類應該是靜態的
- 28. 片段內部類應該是靜態
- 29. 靜態單身?
- 30. 只有公共靜態方法與實例化類的類
這似乎是靜態類的正確情況 – Steve
跳過並使用[依賴注入](http://en.wikipedia.org/wiki/Dependency_injection)。當你測試時它會讓生活變得更容易。 – Mike
靜態類只有當你需要DI和單元測試方法時纔會出現問題。 @Steve:不要自動跳到靜態方法總是要走的結論。 – IAbstract