1. 程式人生 > >C#基礎:單例設計模式

C#基礎:單例設計模式

單例模式就是保證在整個應用程式的生命週期中,在任何時刻,被指定的類只有一個例項,併為客戶程式提供一個獲取該例項的全域性訪問點

  1.     public class SingleTon
  2.     {
  3.         public string name;
  4.         //1.構造方法必須私有化
  5.         private SingleTon ()
  6.         {
  7.         }
  8.         //2.定義靜態例項
  9.         private static SingleTon instance;
  10.         //3.靜態建構函式中對靜態例項進行初始化
  11.         static SingleTon(){
  12.             instance = new SingleTon ();
  13.         }
  14.         //4.對外提供獲取該例項的介面
  15.         public static SingleTon Instance{
  16.             get{ 
  17.                 if (instance == null) {
  18.                     instance = new SingleTon ();
  19.                 }
  20.                 return instance;
  21.             }
  22.         }
  23.     }

1.該Singleton的建構函式必須是私有的,以保證客戶程式不會通過new()操作產生一個例項,達到實現單例的目的;

2.因為靜態變數的生命週期跟整個應用程式的生命週期是一樣的,所以可以定義一個私有的靜態全域性變數instance來儲存該類的唯一例項;

3.必須提供一個全域性函式訪問獲得該例項,並且在該函式提供控制例項數量的功能,即通過if語句判斷instance是否已被例項化,如果沒有則可以同new()建立一個例項;否則,直接向客戶返回一個例項。