/**組合模式:將物件組合程樹形結構以表示"部分-整體"的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性.
* 主要解決:在屬性結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以像處理簡單元素一樣處理複雜元素,從而使客戶程式與複雜元素解耦
* 如何解決:樹枝和樹葉實現統一介面,樹枝內部組合該介面
* 關鍵**:樹枝內部組合該介面,並且含有內部屬性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 定義了乙個公共介面,各種不同的演算法以...