2016-07-28 66 views

回答

1

我使用無狀態單例作爲策略的實現。無國籍,他們也是線程安全的,測試他們沒有問題。

你遇到問題的地方是有狀態的單身人士。這導致更多的交互,特別是在多線程上下文中,但是在單線程中單元測試狀態單例是一種痛苦(即你必須重置測試之間的狀態)。出於這個原因,許多人認爲單身人士是可以避免的反模式。

有狀態單例更好的方法是使用依賴注入。這樣構建組件的代碼只創建一個對象,並將其傳遞給需要它的所有組件。