創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
這篇文章給大家介紹深入淺析Java設(shè)計模式中的單例模式,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
單例模式是非常常見的設(shè)計模式,其含義也很簡單,一個類給外部提供一個唯一的實例。下文所有的代碼均在github
源碼整個項目不僅僅有設(shè)計模式,還有其他JavaSE知識點,歡迎Star,F(xiàn)ork
單例模式的UML圖
單例模式的關(guān)鍵點
通過上面的UML圖,我們可以看出單例模式的特點如下:
1、構(gòu)造器是私有的,不允許外部的類調(diào)用構(gòu)造器
2、提供一個供外部訪問的方法,該方法返回單例類的實例
如何實現(xiàn)單例模式
上面已經(jīng)給出了單例模式的關(guān)鍵點,我們的實現(xiàn)只需要滿足上面2點即可。但是正因為單例模式的實現(xiàn)方式比較寬松,所以不同的實現(xiàn)方式會有不同的問題。我們可以對單例模式的實現(xiàn)做一下分類,看一看有哪些不同的實現(xiàn)方式。
1根據(jù)單例對象的創(chuàng)建時機不同,可以分為餓漢模式和懶漢模式。餓漢是指在類加載的時候,就創(chuàng)建了對象。但是創(chuàng)建對象有時比較消耗資源,會造成類加載很慢,但是優(yōu)點是獲取對象的速度很快,因為早已經(jīng)創(chuàng)建好了嘛。懶漢就是相對餓漢而言,在需要返回單例對象的時候,在創(chuàng)建對象,類加載的時候,并不初始化,好處與缺點也不言而喻
2.根據(jù)是否實現(xiàn)線程安全,可以分為普通的懶漢模式這種線程不安全的寫法,和餓漢模式,雙重檢查鎖的懶漢模式,以及通過靜態(tài)內(nèi)部類或者枚舉類等實現(xiàn)的線程安全的寫法。
一個線程不安全的單例模式
public class SimpleSingleton { private static SimpleSingleton simpleSingleton; private SimpleSingleton(){ } public static SimpleSingleton getInstance(){ if (simpleSingleton == null) { simpleSingleton = new SimpleSingleton(); } return simpleSingleton; } }
分享名稱:深入淺析Java設(shè)計模式中的單例模式-創(chuàng)新互聯(lián)
本文地址:http://chinadenli.net/article4/ioiie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、ChatGPT、小程序開發(fā)、網(wǎng)站改版、網(wǎng)站制作、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容