GOF之結構型模式 (重點)

2021-10-03 14:38:31 字數 572 閱讀 6429

動態的為物件增加乙個新的功能

優點:使用物件的關聯關係取代繼承關係,降低系統的耦合度,避免型別體系的快速膨脹

缺點:會產生很多小物件,大量小物件占用記憶體,在一定程度上影響效能

迪公尺特法則(最少知識原則):乙個軟體實體應當盡可能少的與其他實體發生相互作用

將現有介面功能進行組合封裝,對外界提供最少的介面

特點:記憶體屬於稀缺資源,多個完全相同或相似的物件,共同占用記憶體

以共享的方式高效的支援大量細粒度物件的重用

極大的減少了記憶體中物件的數量,執行時間變長,以時間換取空間

核心關鍵 :內部狀態:可以共享,不會隨環境變化而改變

外部狀態:不可共享,會隨環境變化而隨之改變

元件:flyweightfactory:享元工廠類,建立並管理享元物件,一般設計為鍵值對

flyweight:抽象享元類,申明公共方法,可提供內部狀態,設定外部狀態

concreteflyweight:具體享元類,

unsharedconcreteflyweight:非共享享元類

example:執行緒池,資料庫連線池,string類的設計

uml:

GoF結構型模式 組合模式

常常有一些元件在內部具有特定的資料結構,如果讓客戶依賴這些特定的資料結構,將極大地破壞元件的復用。這時候,將這些特定的資料結構封裝在內部,在外部提供同一的介面,來實現與特定資料結構無關的訪問,是一 種行之有效的解決方案。將物件組合成樹形結構以表示 部分 整體 的層次結構。composite使得使用者...

GOF結構型模式 裝飾模式

小豬逃命 遊戲 乙隻小豬和乙隻灰狼,小豬最多5條命,灰狼每咬到小豬一次,小豬就要少一條命,小豬的任務是要逃過灰狼的追咬到豬欄。在逃的過程中小豬可以吃到三種蘋果,吃 紅蘋果 可以給小豬加上保護罩,吃 綠蘋果 可以加快小豬奔跑速度,吃 黃蘋果 可以使豬趟著水跑。小豬如果吃多種蘋果的話,小豬可以擁有多種蘋...

建立型模式,結構型模式,結構型模式

為了閱讀方便,本文使用 全文手工轉換 轉換內容 本文採用電腦和資訊科技 顯示 關閉 字詞轉換 說明 字詞轉換是中文維基的一項自動轉換,目的是通過電腦程式自動消除繁簡 地區詞等不同用字模式的差異,以達到閱讀方便。字詞轉換包括全域性轉換和手動轉換,本說明所使用的標題轉換和全文轉換技術,都屬於手動轉換。如...