2010-01-24 121 views
1

可能重複:
Advantage of Static class over use of Singleton單型態VS靜態類型

通常,每次我需要我使用的單例模式的單個系統範圍對象。 M問題是,爲什麼我不應該將對象實現爲靜態並自然地獲得單個對象行爲?是否有任何缺點使用靜態類型超過單例因式分解對象?

+2

可能重複的東西本身被封閉爲重複:http://stackoverflow.com/questions/839383/advantage-of-static-class-over-use-of-singleton – APC 2010-01-24 17:11:03

回答

0

靜態類型是少得多(單位)可測試的。單身人士可以傳遞(作爲參數)並繼承。

有關示例等看到這篇文章:

http://dotnetperls.com/singleton-static

一般來說,你應該避免系統範圍的對象,因爲這些建議你有全局狀態。辛格爾頓用來管理對共享資源的訪問(而不是狀態)。

我相信最少有一個GoF記錄在案,說在他們的書中包括單身人士是一個錯誤,在很多情況下它被用作反模式。

0

取決於你想要做的對象。如果只是調用方法,那麼就使用靜態方法。如果你想傳遞這個對象,並且用它來做對象導向的東西,也就是多態,那麼就把它作爲對象的方式。