天天看點

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

餓漢模式

<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;   
     }
}
           

繼續閱讀