單件模式(單例模式)


1.定義:

     某一個類只有一個實例,並且這個實例是在類內部進行實例化,並向整個系統提供該實例。

2.單例模式的通用代碼:

  public sealed  class  Singleton
    {
         private  static  sealed  Singleton  _singleton =  new  Singleton ();
         private  Singleton()
        { }
 
         public  static  Singleton  GetInstance()
        {
             return  _singleton;
        }
 
         public  static  void  DoSomething()
        { }
 
    }

3.優點:

      3.1減少內存開銷,適合對象頻繁創建和銷毀,提升性能。
      3.2生成全局對象,資源共享。

4.單例模式使用場景

 

5.線程安全的單例模式:

總結

  • 本質:內存只能有一個對象;
  • 使用場景:定時器;計數器;一個項目只要一個共享訪問點和共享數據;創建對象消耗資源比較多,如IO操作和數據庫讀取注意;

  線程安全的單例模式代碼:

public sealed class Singleton
{
     private static Singleton _singleton = null;
     private static readonly object _synLock = new object();

     private Singleton(){}

     public static Singleton GetInstance()
     {
          lock (_synLock) 
          {
               if (_singleton==null)  
                    _singleton = new Singleton();
            
               return _singleton;
          }
     } 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM