一 單例模式是什麼?有什麼用
單例模式是創建型模式,確保類只有一個對象實例。
作用就是節約資源:對象創建耗費的時間和內存以及節約GC的時間
二 單例模式的實現
1 單個條件:(1)單例類自己創建自己唯一的實例 (3)單例類爲所有對象提供這一唯一的實例
2 創建中考慮的問題:唯一實例、延遲加載、線程安全、序列化、反射攻擊
下面是最常用的餓漢式單例模式,不能夠延遲加載但是保證線程安全
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton (){}
public static Singleton getInstance() {
return instance;
}
}
根據需求加上延遲加載並且線程安全:
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (null == instance){
synchronized (Singleton.class){
instance = new Singleton();
}
}
return instance;
}
}
還有雙檢鎖、靜態內部類、枚舉都是爲了在不同方面做處理。