如何用 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

更新日期: 08-Aug-2020

471 次瀏覽

開啟你的 職業

透過完成課程獲得認證

開始
廣告