單例模式的兩種方式:餓漢模式與懶漢模式

餓漢模式

<pre name="code" class="java">public class Singleton {
   private Singleton(){}
       //在自己內部定義自己一個實例,是不是很奇怪?
      //注意這是private 只供內部調用
     private static Singleton instance = new Singleton();
     //這裏提供了一個供外部訪問本class的靜態方法,可以直接訪問 </span>
<span style="font-size:32px;">      //靜態工廠方法 
     public static Singleton getInstance() {
       return instance;   
     }
  }



懶漢模式

<pre name="code" class="java">public class Singleton {
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //這個方法比上面有所改進,不用每次都進行生成對象,只是第一次     
  //使用時生成實例,提高了效率!
  if (instance==null)
    instance=new Singleton();
         return instance;   
     }
}





發佈了15 篇原創文章 · 獲贊 16 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章