常常有一些元件在內部具有特定的資料結構,如果讓客戶依賴這些特定的資料結構,將極大地破壞元件的復用。
這時候,將這些特定的資料結構封裝在內部,在外部提供同一的介面,來實現與特定資料結構無關的訪問,是一
種行之有效的解決方案。
將物件組合成樹形結構以表示「 部分-整體」的層次結構。composite使得使用者對單個物件和組合物件的使用具有意圖:一直性(穩定) -----《設計模式》gof
將聚合物件分解為樹結構,客戶物件使用同一的方式對待聚合體和組成元素
應用場景:
1. 使客戶端忽略聚和體和元件的不同點,使用同一的方式來對待它們
2.客戶端使用聚合物件及其元件時候,想簡化客戶端使用行為
影響:
1.無法限制聚合體元件的型別
類圖:
** 例**
新增component介面 :
class componet
};
composite樹結點:
class composite : public componet
//新增結點
void
add(componet* e)
void
process
() override
};
葉子結點:
class leaf : public componet
void
process
() override
};
總結:composite模式採用樹形結構來實現普遍存在的物件容器,從而將「一對多」的關係,
轉變為「一對一」的關係,使得客戶**可以一致地(復用)處理物件和物件容器,無需
關心處理的是單個物件,還是組合的物件容器
composite模式採用樹形結構來實現普遍存在的物件容器,從而將「一對多」的關係,
轉變為「一對一」的關係,使得客戶**可以一致地(復用)處理物件和物件容器,無需
關心處理的是單個物件,還是組合的物件容器
composite模式在具體實現中 , 可以讓父物件中的子類反溯;如果父物件有頻繁的遍歷
需求,可以使用快取技巧來改善效率。
GOF結構型模式 裝飾模式
小豬逃命 遊戲 乙隻小豬和乙隻灰狼,小豬最多5條命,灰狼每咬到小豬一次,小豬就要少一條命,小豬的任務是要逃過灰狼的追咬到豬欄。在逃的過程中小豬可以吃到三種蘋果,吃 紅蘋果 可以給小豬加上保護罩,吃 綠蘋果 可以加快小豬奔跑速度,吃 黃蘋果 可以使豬趟著水跑。小豬如果吃多種蘋果的話,小豬可以擁有多種蘋...
結構型模式 組合模式
目錄 1.組合模式概述 1.1 定義 1.2 作用 1.3 應用場景 1.4 分類 1.4.1 透明組合模式 1.4.2 安全組合模式 2.類圖 3.角色 4.案例 4.1 說明 4.2 建立 4.3 分析 5.優缺點 5.1 優點 5.2 缺點 在組合模式中通過多個物件形成樹形結構以表示整體 部分...
結構型模式 組合
將物件組合成樹形結構以表示 部分 整體 的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。組合模式 composite 經常用於樹形結構,為了簡化 使用composite可以把乙個葉子節點與乙個父節點統一起來處理。我們來看乙個具體的例子。在xml或html中,從根節點開始,每個節點都可能包...