天天看點

【我的設計模式】享元模式

享元模式(Flyweight),使用共享物件,用來盡可能減少記憶體使用量以及分享資訊給盡可能多的相似物件;它适合用于隻是因重複而導緻使用無法令人接受的大量記憶體的大量物件。通常物件中的部分狀态是可以分享。常見做法是把它們放在外部資料結構,當需要使用時再将它們傳遞給享元(from維基百科)。

應用場景

例如Java String類型的設計,避免了在建立大量的String對象時産生的不必要的資源損耗,可以了解為享元模式的應用。

概念解釋

享元模式采用一個共享來避免大量擁有相同内容對象的開銷。這種開銷中最常見、直覺的就是記憶體的損耗。

享元模式以共享的方式高效的支援大量的細粒度對象。