如何用 C# 實現單例設計模式?
單例模式屬於建立型模式
當我們需要確保特定類的物件僅被例項化一次時,使用單例設計模式。建立的單個例項負責協調整個應用程式中的操作。
作為實現準則的一部分,我們需要確保類只有一個例項,方法是將類的所有建構函式宣告為私有的。此外,為了控制單例訪問,我們需要提供一個靜態屬性,該屬性返回物件的單個例項。
示例
Sealed 確保類的繼承和物件例項化在派生類中受到限制
用 null 初始化的私有屬性
確保僅建立物件的一個例項
基於 null 條件
私有建構函式確保物件沒有在類本身之外例項化
可透過單例例項呼叫的公共方法
public sealed class Singleton { private static int counter = 0; private static Singleton instance = null; public static Singleton GetInstance { get { if (instance == null) instance = new Singleton(); return instance; } } private Singleton() { counter++; Console.WriteLine("Counter Value " + counter.ToString()); } public void PrintDetails(string message) { Console.WriteLine(message); } } class Program { static void Main() { Singleton fromFacebook = Singleton.GetInstance; fromFacebook.PrintDetails("From Facebook"); Singleton fromTwitter = Singleton.GetInstance; fromTwitter.PrintDetails("From Twitter"); Console.ReadLine(); } }
輸出
Counter Value 1 From Facebook From Twitter
廣告