設(shè)計模式:享元模式
2021-04-22 23:49 作者:做架構(gòu)師不做框架師 | 我要投稿
什么是享元模式?
享元模式(英文:Flyweight Pattern),運用共享技術(shù)來有效地支持大量細(xì)粒度對象的復(fù)用。它通過共享已經(jīng)存在的對象來大幅度減少需要創(chuàng)建的對象數(shù)量、避免大量相似類的開銷,從而提高系統(tǒng)資源的利用率。

一句話歸納
使用對象池來減少來減少創(chuàng)建重復(fù)的對象。
代碼示例
在《藍(lán)精靈》電影中邪惡的格格巫在笨笨引導(dǎo)下闖進(jìn)精靈村莊,藍(lán)精靈們在躲避格格巫時通過藍(lán)月亮的旋窩被傳送到了紐約中央公園內(nèi),在這里他們一方面要趕在格格巫和阿茲貓找到他們之前回到自己的蘑菇村莊,另一方面他們也要在紐約展開冒險。

適用性
以下我建議你考慮使用:
系統(tǒng)中存在大量相似的對象時,減少資源的浪費;
需要緩沖池的時候;
在java語言中的 String的intern()方法就是使用該模式。
局限性
以下我建議你謹(jǐn)慎使用:
為了使對象可以共享,需要將一些不能共享的狀態(tài)外部化,這將增加程序的復(fù)雜性。
享元模式是為了共享,有可能會出現(xiàn)線程安全問題。

寫在最后
最后,好兄弟,記得點贊,關(guān)注,謝謝。

標(biāo)簽: