設(shè)計模式:單例模式
2021-04-03 14:45 作者:做架構(gòu)師不做框架師 | 我要投稿
什么是單例模式?
單例模式(英文:Sigleton pattern),保證一個類在任何情況下都只有一個實例,并提供一個安全訪問點。
一句話歸納
保證獨一無二。
代碼示例
餓漢模式(在類加載時就創(chuàng)建,浪費內(nèi)存):

懶漢模式(在第一次使用時被創(chuàng)建,對程序性能會有一定影響):

枚舉模式(更簡潔、無償提供了序列化機制,絕對防止多次實例化,即使是在面對復(fù)雜的序列化或者反射攻擊的時候):

適用性
以下優(yōu)點我建議你考慮使用:
在內(nèi)存里只有一個實例,減少內(nèi)存開銷,尤其是在一個類頻繁創(chuàng)建或銷毀;
工具類和靜態(tài)常量類;
避免對資源的多重占用。
局限性
以下問題我建議你謹(jǐn)慎使用:
沒有接口,不能繼承,擴展除了修改自身以外別無他法;
單例模式與單一職責(zé)原則有沖突。一個類應(yīng)該只實現(xiàn)一個邏輯,而不關(guān)心它是否是單例的,是不是要單例取決于環(huán)境,單例模式把“要單例”和業(yè)務(wù)邏輯融合在一個類中。
寫在最后
最后,好兄弟,記得點贊,關(guān)注,謝謝。

標(biāo)簽: