設計模式 組合模式

2021-10-10 01:50:22 字數 1228 閱讀 8522

組合模式:將物件組合成樹形結構以表示『部分-整體』的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性

這裡使用公司總部和分公司來舉例:

#ifndef company_h

#define company_h

#include #include #include class company //公司類,抽象介面

virtual void add(company *c) = 0;

virtual void remove(company *c) = 0;

virtual void display(int depth) = 0;

virtual void lineofduty() = 0;

virtual ~company() {} //注意析構函式不能宣告為純虛函式!

protected:

qstring _name;

};class concretecompany final: public company //具體公司類,實現抽象介面 樹枝節點

concretecompany(const concretecompany &) = delete; //qlist裡面如果使用智慧型指標就不用delete了

concretecompany & operator =(const concretecompany &) = delete; //qlist裡面如果使用智慧型指標就不用delete了

void add(company *c) override

void remove(company *c) override

void display(int depth) override

}void lineofduty() override

~concretecompany() override

private:

qlistchildren;

};class hrdepartment final: public company //人力資源部類,樹葉節點

void add(company *) override {}

void remove(company *) override {}

void display(int depth) override

可以看出,只要組合模式的類構造好,往裡面新增枝葉是非常容易的!並且使用裡面的方法時可以把所有枝葉的方法都展現出來,非常好用!

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

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

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

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

設計模式 組合設計模式

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