《設計模式》2 單例模式

一 單例模式是什麼?有什麼用

單例模式是創建型模式,確保類只有一個對象實例。

作用就是節約資源:對象創建耗費的時間和內存以及節約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;  
    }  
}
 

還有雙檢鎖、靜態內部類、枚舉都是爲了在不同方面做處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章