運用共享技術有效地支援大量地細粒度物件。
享:代表共享;
元:基本單元
關鍵概念:內部狀態和外部狀態
以下情況都成立時方可使用:
乙個應用程式使用了大量地物件
大量地物件造成了儲存開銷
物件地大多數狀態可變為外部狀態
刪除物件地外部狀態,可以使用相對較少地共享物件取代很多組物件
應用程式不依賴於物件表示
例如文件編輯器和棋盤
缺點:使用享元模式時,查詢,傳輸,計算外部狀態都會產生執行時的開銷,尤其當享元原先被儲存為內部狀態時
優點:節省了記憶體儲存開銷,共享的flyweight越多,空間節省越大。原因時例項總數目減少,物件地內部狀態地平均數目,外部狀態時計算還是儲存。
即以時間換空間
1 刪除外部狀態 :此設計模式的可用性取決於是都容易識別外部狀態,並將其從共享物件中刪除
2 管理共享物件 物件是共享的,使用者不能直接對其進行例項化,需要通過享元工廠查詢具體的享元物件。共享還意味這某種形式的引用計數和垃圾**,即乙個物件不在使用時,可以**其儲存空間
一般和組合模式使用
享元設計模式
享元定義 實踐 享元實體物件 乙個學科可以包含多個學生 姓名,所以學科為內部不可變狀態,而學生 姓名,為外部可變狀態 author zrh date 2021 2 3 15 51 data public class xianyuanmodel 享元實體工廠類 author zrh date 2021...
設計模式(享元模式)
享元模式是設計模式中少數幾個已提高系統效能為目的模式之一。它的核心思想是 如果系統存在多個 相同的物件,那麼只需要共享一分物件的拷貝,而不必為每一次使用都建立新的物件。當有物件被大量復用時,特別是重量級的物件復用可以使用享元模式來提高系統效能。其優點如下 1.可以節省重複建立物件的開銷,因為被享元模...
設計模式 享元模式
享元模式flyweight flyweight 模式是乙個提高程式效率和效能的模式 會大大加快程式的執行速度。把物件中使用比較多,具有共同點的,拿出來做成乙個共享類,這樣就行成了共享模式。如 integer 物件在 128 127 使用的是同乙個物件。在這之間是共享的。享元中的角色 flyweigh...