溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

單例模式是什么意思

發(fā)布時(shí)間:2020-07-31 10:36:05 來源:億速云 閱讀:244 作者:Leah 欄目:互聯(lián)網(wǎng)科技

今天就跟大家聊聊有關(guān)單例模式是什么意思,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

單例模式屬于創(chuàng)建類型的一種常用的軟件設(shè)計(jì)模式,通過該模式的方法創(chuàng)建的類在當(dāng)前進(jìn)程中只有一個(gè)實(shí)例,其好處可以確保所有對(duì)象都訪問唯一實(shí)例,以及減少內(nèi)存開支和系統(tǒng)的性能開銷。

單例模式是設(shè)計(jì)模式中最簡(jiǎn)單的形式之一。這一模式的目的是使得類的一個(gè)對(duì)象成為系統(tǒng)中的唯一實(shí)例。要實(shí)現(xiàn)這一點(diǎn),可以從客戶端對(duì)其進(jìn)行實(shí)例化開始。因此需要用一種只允許生成對(duì)象類的唯一實(shí)例的機(jī)制,“阻止”所有想要生成對(duì)象的訪問。使用工廠方法來限制實(shí)例化過程。這個(gè)方法應(yīng)該是靜態(tài)方法(類方法),因?yàn)樽岊惖膶?shí)例去生成另一個(gè)唯一實(shí)例毫無意義。

單例模式實(shí)現(xiàn)方式

通常單例模式在Java語言中,有兩種構(gòu)建方式:

  • 懶漢式—線程不安全:最基礎(chǔ)的實(shí)現(xiàn)方式,線程上下文單例,不需要共享給所有線程,也不需要加synchronize之類的鎖,以提高性能。

  • 懶漢式—線程安全:加上synchronize之類保證線程安全的基礎(chǔ)上的懶漢模式,相對(duì)性能很低,大部分時(shí)間并不需要同步

  • 餓漢方式。指全局的單例實(shí)例在類裝載時(shí)構(gòu)建。

  • 雙檢鎖式。在懶漢式基礎(chǔ)上利用synchronize關(guān)鍵字和volatile關(guān)鍵字確保第一次創(chuàng)建時(shí)沒有線程間競(jìng)爭(zhēng)而產(chǎn)生多個(gè)實(shí)例,僅第一次創(chuàng)建時(shí)同步,性能相對(duì)較高

  • 登記式。作為創(chuàng)建類的全局屬性存在,創(chuàng)建類被裝載時(shí)創(chuàng)建

  • 枚舉。java中枚舉類本身也是一種單例模式

看完上述內(nèi)容,你們對(duì)單例模式是什么意思有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI