設計模式19 組合模式

2021-10-03 01:23:26 字數 1088 閱讀 6966

將一種物件組合成樹狀層次結構的模式。

1)對樹上的物件處理一致。

2)可以容易在組合內加入新的物件,而不改源**

1)對樹的邏輯需要樹立清楚。

2)不容易使用繼承的方法增加功能。

1)抽象構件:樹葉和樹枝的抽象類。

2)樹葉構件:沒有子節點。

3)樹枝構件:管理樹葉構件。

//1.抽象構件

class component

virtual void add(component * c) {};

virtual void remove(component * c) {};

virtual void display(int depth) = 0;//顯示列印

virtual void lineofduty() = 0;//履行職責

protected:

std::string _name;

};//2.葉子構件

class hrdepartment:public component

virtual void display(int depth)

virtual void display(int depth)

};virtual void lineofduty() 

};//履行職責

private:

std::vector_children;

};int main()

結構圖-北京總公司

---總公司人力資源部

---總公司人力資源部

---石家莊分公司

-----石家莊分公司人力資源部

-----石家莊分公司人力資源部

職責總公司人力資源部員工招聘培新管理

總公司人力資源部公司財務收支管理

石家莊分公司人力資源部員工招聘培新管理

石家莊分公司人力資源部公司財務收支管理

設計模式19 組合模式

組合物件介面宣告 class component 增加或移除樹葉或樹枝的功能 virtual void add component c 0 virtual void remove component c 0 virtual void display int depth 0 protected str...

大話設計模式19 組合模式

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

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

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