享元模式

享元模式 （ 英語 ： Flyweight Pattern ） 是一種軟體設計模式 。 它使用物件用來儘可能減少記憶體使用量 ； 於相似物件中分享盡可能多的資訊 。 當大量物件近乎重複方式存在 ， 因而使用大量記憶體時 ， 此法適用 。 通常物件中的部分狀態 ( state ) 能夠共享 。 常見做法是把它們放在資料結構外部 ， 當需要使用時再將它們傳遞給享元 。 典型的享元模式的例子爲文書處理器中以圖形結構來表示字符 。 一個做法是 ， 每個字形有其字型外觀, 字模 metrics, 和其它格式資訊 ， 但這會使每個字符就耗用上千位元組 。 取而代之的是 ， 每個字符參照到一個共享字形物件 ， 此物件會被其它有共同特質的字符所分享 ； 只有每個字符 （ 文件中或頁面中 ） 的位置才需要另外儲存 。