單例模式特點:
1、單例類只能有一個實例。
2、單例類必須自己創建自己的唯一實例。
3、單例類必須給所有其他對象提供這一實例。
懶漢式單例:
//懶漢式單例類.在第一次調用的時候實例化自己
public class Singleton {
private Singleton() {}
private static Singleton single=null;
//靜態工廠方法
public static Singleton getInstance() {
if (single == null) {
single = new Singleton();
}
return single;
}
}
餓漢式單例:
//餓漢式單例類.在類初始化時,已經自行實例化
public class Singleton {
private Singleton() {}
private static final Singleton single = new Singleton();
//靜態工廠方法
public static Singleton getInstance() {
return single;
}
}
線程安全:
餓漢式單例是線程安全的,可以直接用於多線程
懶漢式單例在方法調用上加上同步synchronized 即爲線程安全