餓漢模式
<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;
}
}