設計模式 組合模式

2021-10-11 05:19:28 字數 1620 閱讀 5079

#include

"iostream"

#include

"string"

#include

"vector"

using

namespace std;

//抽象部門

class

company

company

(string strname)

//新增

virtual

void

add(company*)=

0;//移除

virtual

void

remove

(company*)=

0;//獲取幾級部分

virtual company *

getchild

(int)=

0;//各部門

virtual

void

operation()

=0;//獲取部門名字

virtual string getname()

=0;public

: string m_strname;};

//具體職能部門(葉子節點)

class

hrdept

:public company

hrdept

(string strname)

void

add(company *c)

void

remove

(company *c)

company *

getchild

(int

)void

operation()

string getname()

public

: string m_strname;

};

//容器 具體公司實體 (樹枝)

class

subcompany

:public company

subcompany

(string strname)

void

add(company *c)

void

remove

(company *c)}}

company *

getchild

(int i)

else

}void

operation()

} string getname()

public

: string m_strname;

vector> m_vcompanylist;

};

int

main()

system

("pause");

return1;

}執行結果:

蘋果總部

蘋果北京分部

北京分部hr辦公室-我是職能部門

蘋果海淀區分部

蘋果朝陽區分部

蘋果朝陽區分部hr辦公室-我是職能部門

蘋果朝陽區分部

請按任意鍵繼續.

..

設計模式

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...

設計模式 組合模式 組合模式使用

目錄 組合模式概括 組合模式使用場景 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構 作用 使客戶端對單個物件和組合物件保持一致的處理方式 使用場景 1.希望客戶端可以忽略組合物件與單個物件的差異時 2.處理乙個樹形結構時 優點 清楚的定義分層次的複雜物件,表示物件的全部或部分層次 讓客戶...

設計模式 組合設計模式

組合模式 composite pattern 又稱部分整體模式,用於把一組相似的物件當做乙個單一的物件,組合模式依據樹形來組合物件,用來表示部分以及整體層次,為結構型設計模式,它建立來物件組的樹形結構。意圖 將物件組合成樹形結構以表示 部分 整體 的結構層次,組合模式使得使用者對單個物件和組合物件的...