大話設計模式讀書筆記 21 享元模式

2022-04-10 10:39:10 字數 535 閱讀 3195

享元模式定義:

運用共享的技術有效地支援大量細粒度的物件。
內部狀態和外部狀態:

在享元物件內部,不會隨環境改變而改變的狀態稱為內部狀態, 否則是外部狀態, 在呼叫享元物件時,把外部狀態傳給它
比如:

在開發棋類遊戲時,如果每乙個棋子都代表乙個物件,那例項數會很多,仔細分析會發現,圍棋和五子棋只有黑白兩色,各個棋子的差別是位置的不同,

把顏色放在乙個類中,這是內部狀態,把座標放在另乙個類中,這是外部狀態,從n多類變為了兩個類,大大減少了例項數

模式結構

**實現

場景: 是乙個大型的**,每個人的部落格是乙個小型的**,根據使用者的id,展示的內容不一樣, 因此資料和模板不同,但**核心和資料庫是共享的

優點: 避免大量相似類的開銷

使用場景: 程式中使用了大量的物件,造成了很大的儲存開銷,導致執行時資源和效能受到影響

《大話設計模式》讀書筆記 第26章 享元模式

1 享元模式 flyweight 運用共享技術有效地支援大量細粒度的物件。2 享元模式 flyweight 結構圖 3 內部狀態與外部狀態 在享元物件內部並且不會隨環境改變而改變的共享部分,可以稱為是享元物件的內部狀態,而隨環境改變而改變的 不可以共享的狀態就是外部狀態了。4 事實上,享元模式可以避...

python 享元模式 大話設計模式之享元模式

享元模式可以避免大量的非常相似的類的開銷。在程式設計中,有時需要生成大量的細顆粒度的類例項來表示資料,如果能發現這些例項除了幾個引數外基本上都是相同的,如果能把那些引數移到類的例項的外面,在方法呼叫時將他們傳遞進來,就可以通過共享大幅度地減少單個例項的數目。也就是說,享元模式執行時所需要的狀態是有內...

《大話設計模式 享元模式》筆記

1 享元模式 flyweight 運用共享技術有效的支援大量細顆粒度的物件。2 享元模式結構圖 3 簡單 實現 flyweight類,它是所有享元類的超類或介面,通過這個介面,flyweight可以接受並作用於外部狀態。public abstract class flyweightconcretef...