今天就跟大家聊聊有關(guān)單例模式是什么意思,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站專注于昌平企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。昌平網(wǎng)站建設(shè)公司,為昌平等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
單例模式屬于創(chuàng)建類型的一種常用的軟件設(shè)計(jì)模式,通過該模式的方法創(chuàng)建的類在當(dāng)前進(jìn)程中只有一個(gè)實(shí)例,其好處可以確保所有對(duì)象都訪問唯一實(shí)例,以及減少內(nèi)存開支和系統(tǒng)的性能開銷。
單例模式是設(shè)計(jì)模式中最簡單的形式之一。這一模式的目的是使得類的一個(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。