裝飾者模式

2021-06-22 05:29:17 字數 1092 閱讀 8526

裝飾者模式

說真的,寫了4年多的c++,因為都是通訊協議棧和伺服器,業務比較少,類用的比較少,而且之間的關係都是簡單的關聯,依賴,聚合,所以很不理解裝飾者,其實是還沒有真的理解oop吧,這也是一直沒有信心擔任pl的原因,都是用c++來寫c,每個功能都是乙個function(). 而好不容易有乙個業務多一些的專案,缺因為加入的晚,幾乎是在現有框架下派生子類,加**。 

裝飾者模式(decorator pattern),是在不必改變原類檔案和使用繼承的情況下,動態的擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。
**是抄別人的,暫時這樣吧。總算是表面上理解了。

class phone

virtual ~phone()

virtual void showdecorate() {} 

public:

string m_strname;

};//具體的手機類  

class nokiaphone : public phone  

~nokiaphone()

private:  

string m_name;  

public:

int m_ivalue;

void showdecorate() 

};class decoratorphone : public phone

private:

phone *m_pphone;

public:

void showdecorate()

};class decoratorphonea : public decoratorphone

virtual void showdecorate()

private:

void adddecorate()

//增加的裝飾  

};class decoratorphoneb : public decoratorphone

virtual void showdecorate()

private:

void adddecorate()

//增加的裝飾  

};int main()

裝飾者模式

裝飾者模式 動態地將責任附加到物件上。若要擴張功能,裝飾者提供了比繼承更有彈性的替代方案。裝飾者可以在所委託被裝飾者的行為之前或之後,加上自己的行為,以達到特定的目的。裝飾者與被裝飾者物件具有相同的超型別。include include using namespace std class bever...

裝飾者模式

裝飾者模式,是在不改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾者模式中的角色 1 被裝飾者抽象component,是乙個介面或抽象類,就是定義最核心的物件,也是最原始的物件,這個類是需要裝飾類的基類。2 被裝飾者具體實現co...

裝飾者模式

裝飾者模式 裝飾者模式的好處是便於擴充套件,對乙個東西不管怎麼變,只需要找到相應的元件去改變它 1.如何組裝在一起 建立主題 packetbodycreator body new packetbodycreator 建立header packethtmlheadercreator html new ...