我對static
+ const
成員和static
類兩個問題。靜態的常量成員,靜態類和瓶頸
一:爲什麼你會聲明一個擁有所有靜態和常量成員而不是靜態類的類?
我一直在研究.net代碼反射器作爲學習練習。我一直在研究的課程證明這個設計是FormsAuthentication
課程。它的所有成員都標記爲static
或const
,但它自己的類標記爲public sealed
類中唯一的非靜態成員是沒有實現的默認構造方法。爲什麼這個班級沒有被標記爲public static sealed
?
我的第二個問題是關於爲什麼在FormsAuthentication
類成員被聲明爲static
。據我瞭解,應用程序的AppDomain
中可能會有多個HttpApplications
,並且所有這些HttpApplications
將共享類的靜態成員。
二:這不會造成瓶頸嗎?如果是這樣,爲什麼它是這樣設計的?
那裏*是沒有實例化的'FormsAuthentication'實例。它是一個純粹的靜態類,正如你所指出的那樣,如果它沒有超過語法,就會在類上使用'static'關鍵字。因此,從單一意義上來考慮這個類是完全不準確的,這個單例本身就是一個*實例*。 – 2012-03-04 03:00:21
@KirkWoll番茄,塔瑪託。在概念上它是同樣的事實,它的靜態方法與傳統的單例相比只是一個實現細節。當然,單身模式可以有一些優點,但是如果你不需要它們,靜態也可以很好地工作。 – Andy 2012-03-04 03:08:01
這不是「實施細節」;一個由* definition定義的「singleton」需要一個* instance * - 這就是爲什麼它被稱爲單例。即「單一」實例。 – 2012-03-04 03:16:59