設(shè)計模式——單例模式

單例模式應(yīng)該是應(yīng)用最廣的模式,也是最容易理解的模式了.
在許多時候,我們整個系統(tǒng)值需要擁有一個全局對象,這樣有利我們的管理和使用.比如網(wǎng)絡(luò)的訪問請求,線程池等.
而寫法多種多樣,最最簡單的寫法

public class Singleton {  
    //私有化構(gòu)造方法
    private Singleton() {}  
    private static Singleton single=null;  
    //靜態(tài)工廠方法   
    public static Singleton getInstance() {  
         if (single == null) {    
             single = new Singleton();  
         }    
        return single;  
    }  
}  

但是這樣寫顯然不是線程安全的
關(guān)于線程安全的寫法很多
這里我舉例使用靜態(tài)內(nèi)部類的單例模式

public class Singleton {    
    private Singleton() {}    
    ?private static class Holder {    
        private static final Singleton instance = new Singleton();    
    }    
    public static Singleton getInstance() {     
        return Holder.instance;    
    }    
}    

第一次加載Singleton類不會初始化instance,只有在調(diào)用getInstance()的時候才會導(dǎo)致instance被初始化.而且通過靜態(tài)內(nèi)部類可以保證單例且線程安全

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

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

  • Java設(shè)計模式——單例模式 單例模式應(yīng)該是大家最為熟知的一種設(shè)計模式了,相信大家或多或少的都在自己的項目中使用過...
    gogoingmonkey閱讀 573評論 0 2
  • 目錄 本文的結(jié)構(gòu)如下: 什么是單例模式 為什么要用該模式 模式的結(jié)構(gòu) 代碼示例 優(yōu)點和缺點 適用環(huán)境 模式應(yīng)用 總...
    w1992wishes閱讀 484評論 1 2
  • 單例模式(Singleton Pattern)是眾多設(shè)計模式中較為簡單的一個,同時它也是面試時經(jīng)常被提及的問題,如...
    廖少少閱讀 651評論 0 1
  • 概念 java中單例模式是一種常見的設(shè)計模式,單例模式的寫法有好幾種,比較常見的有:懶漢式單例、餓漢式單例。單例模...
    怡紅快綠閱讀 545評論 0 0
  • 單例模式 定義:確保一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。 使用場景:確保一個類有且只有一個...
    ping_平閱讀 224評論 0 0

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