2013-10-28 43 views
2

我有很多服務類在我的應用程序沒有任何狀態(任何領域,屬性),但有方法。我應該使這個類爲靜態或創建這個類的一個對象,並通過使用單個對象進行應用程序的生命週期類只有方法,應該是單身或靜態

+0

這似乎是靜態類的正確情況 – Steve

+4

跳過並使用[依賴注入](http://en.wikipedia.org/wiki/Dependency_injection)。當你測試時它會讓生活變得更容易。 – Mike

+0

靜態類只有當你需要DI和單元測試方法時纔會出現問題。 @Steve:不要自動跳到靜態方法總是要走的結論。 – IAbstract

回答

7

,如果你需要實現接口或從其他類派生你只需要這個類是一個單例。如果你沒有這個需求,那就去一個靜態類。

2

單身可以實現接口,而靜態類不能。所以如果你的代碼會受益於接口(例如依賴注入),那麼使用singleton其他明智的靜態將衝浪。

1

在大多數情況下,您可以使該類和它的成員靜態。但是,如果您計劃對服務類進行任何單元測試,您將需要一個實例來使用接口。由於您無法在靜態類上實現接口,因此您將需要使用單例模式並實現接口。

相關問題