組合模式實現樣例

2021-10-01 23:45:47 字數 1001 閱讀 6424

/**組合模式:將物件組合程樹形結構以表示"部分-整體"的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性.

* 主要解決:在屬性結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以像處理簡單元素一樣處理複雜元素,從而使客戶程式與複雜元素解耦

* 如何解決:樹枝和樹葉實現統一介面,樹枝內部組合該介面

* 關鍵**:樹枝內部組合該介面,並且含有內部屬性list,裡面放component.

*/#ifndef mode_composite_hpp

#define mode_composite_hpp

#include#include#include#includeusing namespace std;

class company

virtual ~company(){}

virtual void add(company* company) = 0;

virtual void remove(string name) = 0;

virtual void display(int depth) = 0;

string getname()

protected:

string m_name;

};//具體的公司

class concretecompany:public company

~concretecompany();

void concretecompany::add (company *company)

void concretecompany::remove (company *company)

}}void concretecompany::display (int depth)

}//公司下的部門

class financedept:public company //樹葉

~financedept()

#endif // mode_composite_hpp

裝飾模式實現樣例

裝飾模式 動態地給物件新增額外的功能,就新功能來說,裝飾器模式比生產子類更加靈活.主要解決 通常我們為了擴充套件乙個類經常使用繼承的方式,由於集成為類引入靜態特徵,並且隨著擴充套件功能的增多,子類會膨脹.如何解決 將具體的功能劃分,同時繼承裝飾者類 關鍵 裝飾類復合和繼承元件類,具體的擴充套件類重寫...

觀察者模式的實現樣例

觀察者模式 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變,所有依賴於它的物件都得到通知並自動更新 主要解決 乙個物件更新,其他物件也要更新 如何解決 目標類通知函式通知所有觀察者自動更新 關鍵 在目標類中增加乙個arraylist來存放觀察者們 ifndef mode observer...

策略模式 MFC樣例

context 應用場景 1 須要使用concretestrategy提供的演算法。2 內部維護乙個strategy的例項。3 負責動態設定執行時strategy詳細的實現演算法。4 負責跟strategy之間的互動和資料傳遞。strategy 抽象策略類 1 定義了乙個公共介面,各種不同的演算法以...