2012-08-22 164 views

回答

3

有狀態的單例更難以進行單元測試。

我使用無狀態singletons,我沒有看到問題。

由於單身人士可以實現接口,它們可以使用依賴注入傳遞(也應該這樣傳遞如果可能)

+4

如果單身人士是無國籍人士,那麼爲什麼有單身人士而不是靜態方法的集合? – Servy

+3

沒有這種「無國籍的單身人士」。 –

+1

一個無狀態的單例可以實現一個接口。假設你有一個'Marshaller'接口,它在功能上將一個Object變成一個'byte []'並返回。你希望能夠通過DI傳遞不同的策略,這意味着你必須有一個實例通過。對於每個實現都有其自己的類可能有多個實現,但是如果它們是無狀態的,則只需要一個實例。 –