裝飾者模式
說真的,寫了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 ...