#include#include
#include
using namespace std;
class company
virtual void add(company* c){}
virtual void remove(company* c){}
virtual void display(int depth){}
virtual void lineofduty(){}
protected:
string name;
};class concreatecompany:public company
void add(company* c) override
void remove(company* c) override
void display(int depth) override
cout
void lineofduty() override
}private:
list cl;
};class hrdepartment:public company
void add(company* c) override
void remove(company* c) override
void display(int depth) override
cout
root->add(new financedepartment("總公司財務部"));
concreatecompany* comp = new concreatecompany("上海華東分公司");
comp->add(new hrdepartment("華東分公司人力資源部"));
comp->add(new financedepartment("華東分公司財務部"));
root->add(comp);
concreatecompany* comp1 = new concreatecompany("南京辦事處");
comp1->add(new hrdepartment("南京辦事處人力資源部"));
comp1->add(new financedepartment("南京辦事處財務部"));
comp->add(comp1);
concreatecompany* comp2 = new concreatecompany("杭州辦事處");
comp2->add(new hrdepartment("杭州辦事處人力資源部"));
comp2->add(new financedepartment("杭州辦事處財務部"));
comp1->add(comp2);
root->display(1);
//root->lineofduty();
getchar();
return 0;
}
C 組合模式
組合模式 composite pattern 組合多個物件形成樹形結構以表示具有 整體 部分 關係的層次結構。組合模式對單個物件 即 葉子構件 和組合物件 即 容器構件 的使用具有一致性,組合模式又被稱為 整體 部分 part whole 模式,屬於物件結構型模式。uml 結構圖 透明組合模式 um...
組合模式 C
組合模式 又叫部分整體模式,是用於把一組相似物件當做乙個單一物件.組合模式依據樹形結構來組合物件,用來表示部分以及整體層次.屬於結構型模式.目的 將物件組合成樹形結構以表示 部分 整體 的層次關.組合模式使得使用者對單個物件和組合物件的使用具有一致性.優點 缺點 使用場景 本示例copy自 關鍵 樹...
C 設計模式 組合模式
一.概述 組合模式,將物件組合成樹形結構以表示 部分 整體 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。結構 1.component 是組合中的物件宣告介面,在適當的情況下,實現所有類共有介面的預設行為。宣告乙個介面用於訪問和管理component子部件。2.leaf 在組合...