設計模式-懶漢和餓漢

作者:fhyPayaso
鏈接:https://www.zhihu.com/question/272488727/answer/370044004
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
 

餓漢式:

public class Singleton {

    private static Singleton instance = new Singleton();

    private Singleton() {
    }

    public static Singleton getInstance() {
        return instance;
    }
} 

不管程序是否需要這個對象的實例,總是在類加載的時候就先創建好實例,理解起來就像不管一個人想不想喫東西都把喫的先買好,如同餓怕了一樣。

 

懶漢式:

public class Singleton {

    private volatile static Singleton instance = null;

    private Singleton() {
    }

    public static synchronized Singleton getInstance() {
        if (null == instance) {
            instance = new Singleton();
        }
        return instance;
    }
}   

如果一個對象使用頻率不高,佔用內存還特別大,明顯就不合適用餓漢式了,這時就需要一種懶加載的思想,當程序需要這個實例的時候纔去創建對象,就如同一個人懶的餓到不行了纔去喫東西。

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