2010-08-25 107 views

回答

20

不是。單一類意味着被實例化,因爲該術語本身指的是一個實例;如果你使它成爲一個靜態類,你不能創建一個單例對象。

+2

+1:一個Singleton類可能有一個靜態方法,通過它你可以得到單例對象的實例。 – 2010-08-25 12:02:40

6

不可以。Singleton參照類的單個實例。靜態類沒有實例。

4

單例是由定義的一個實例,所以沒有。

但是,你可以有一個靜態類,其中的方法訪問一個私有靜態變量。但這只是將單身人士推向更深層次。

7

(貓,鴿子見面。)

是的,但只有在實踐,而不是理論。

單例是一個只能實例化一次的類。靜態類不能被實例化,所以它不能被稱爲單例。但是,由於我們談論的是C#,靜態類有構造函數,所以它實際上被實例化了,並且只能有一個實例,所以對我來說看起來很像一個單例。

+0

這真的是最好的答案,因爲它是C#中唯一指出的,你實際上可以用一個靜態ctor初始化一個靜態類。通過嚴格的定義它不是一個單一的,但通過所有的實際應用,你可以認爲它是一個。 – Andy 2011-11-01 15:32:11

相關問題