c 組合模式

2021-08-28 22:32:03 字數 1448 閱讀 4099

#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 在組合...