設計模式19 組合模式

2021-10-24 09:49:40 字數 1299 閱讀 6171

// 組合物件介面宣告

class

component

//增加或移除樹葉或樹枝的功能

virtual

void

add(component* c)=0

;virtual

void

remove

(component* c)=0

;virtual

void

display

(int depth)=0

;protected

: string name;};

// 在組合物件中表示葉節點物件

class

leaf

:public component

void

add(component* c)

void

remove

(component* c)

void

display

(int depth)

private

: string name;};

//定義有枝節點行為,用來儲存子部件

class

composite

:public component

void

add(component* c)

void

remove

(component* c)}}

void

display

(int depth)

}private

: vector

> children;};

composite::

composite()

composite::

~composite()

leaf::

leaf()

leaf::

~leaf()

component::

component()

component::

~component()

intmain

(int argc,

char

** ar**)

設計模式19 組合模式

將一種物件組合成樹狀層次結構的模式。1 對樹上的物件處理一致。2 可以容易在組合內加入新的物件,而不改源 1 對樹的邏輯需要樹立清楚。2 不容易使用繼承的方法增加功能。1 抽象構件 樹葉和樹枝的抽象類。2 樹葉構件 沒有子節點。3 樹枝構件 管理樹葉構件。1.抽象構件 class component...

大話設計模式19 組合模式

概念 將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。如 word文件中對文字的處理,即可以處理單個字又可以處理多個字 甚至是對整個文件的處理 再比如說總公司和各個分公司在職務功能都類似,但是子公司包含於總公司之中,如下圖的結構 compo...

Android設計模式之(19) 組合模式

組合模式屬於結構型設計模式.組合模式又可叫做 部分 整體 模式.它將部分與整體的關係通過樹的形式表現出來.分為安全模式與透明模式.常規的數上會有各種枝幹樹枝與樹葉,樹幹的每乙個分叉點則理解為乙個子節點,而樹葉則認為是末節點,將樹枝也樹葉理解為每乙個部分,所有的部分組合起來就是乙個整體.比如城市 四川...