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