幾種常用的單例模式.md

  1. 懶漢模式
public class Singleton {
    private Singleton() {
    }

    private volatile static Singleton mInstance;// 第一層鎖:保證變量可見性

    public static Singleton getInstance() {
        if (mInstance == null) {
            synchronized (Singleton.class) {
                if (mInstance == null) {
                    mInstance = new Singleton();
                }
            }
        }
        return mInstance;
    }

}
  1. 惡漢模式
class Singleton {
    private static final Singleton ourInstance = new Singleton();

    static Singleton getInstance() {
        return ourInstance;
    }

    private Singleton() {
    }
}
  1. 靜態(tài)內(nèi)部類模式
public class Singleton {

    // 私有構(gòu)造函數(shù)
    private Singleton() {
    }
    
    public static Singleton getInstance() {

        return SingletonHolder.instance;
    }

    private static class SingletonHolder {
        private static final Singleton instance = new Singleton();
    }

}

其中用的最多也是最常用的是第3種,靜態(tài)內(nèi)部類單例。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 單例模式(SingletonPattern)一般被認(rèn)為是最簡(jiǎn)單、最易理解的設(shè)計(jì)模式,也因?yàn)樗暮?jiǎn)潔易懂,是項(xiàng)目中最...
    成熱了閱讀 4,536評(píng)論 4 34
  • 設(shè)計(jì)模式概述 在學(xué)習(xí)面向?qū)ο笃叽笤O(shè)計(jì)原則時(shí)需要注意以下幾點(diǎn):a) 高內(nèi)聚、低耦合和單一職能的“沖突”實(shí)際上,這兩者...
    彥幀閱讀 3,888評(píng)論 0 14
  • 概念 確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化,并向整個(gè)系統(tǒng)提供一個(gè)訪問它的全局訪問點(diǎn),這個(gè)類稱為單例類。 特性 ...
    野狗子嗷嗷嗷閱讀 613評(píng)論 0 2
  • 親愛的老爸: 你過得好不?今天是周日了,你有沒有好好睡大覺??? 今天約了抱抱,吃了個(gè)芝士年糕自助,好久沒吃那么多芝...
    老爸我很想你閱讀 154評(píng)論 0 1
  • 經(jīng)歸對(duì)css的學(xué)習(xí)之后,通過對(duì)之前使用純HTML實(shí)現(xiàn)考試頁(yè)面進(jìn)行添加樣式,進(jìn)行美化試卷達(dá)到一下效果: ? 1.將每...
    heheheyuanqing閱讀 627評(píng)論 0 0

友情鏈接更多精彩內(nèi)容