《大話設計模式》的裝飾模式的C++實現。
結構圖:


DecoratZ喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vci5oOjwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">#ifndef _DECORATOR_H
#define _DECORATOR_H
#include
#include "Decorator.h"
void CPerson::Show()
{
cout<<"裝飾人:"<Show();
}
}
void CFinery::Decorate( CPerson *component )
{
m_pComponent = component;
}
void CTShirts::Show()
{
CFinery::Show();
cout<<"TShirts"<
main.cpp:
#include
#include "Decorator.h"
using namespace std;
int main()
{ //裝飾模式
CPerson person("lin");
CBigTrouser bigtrouser;
CTShirts Tshirts;
bigtrouser.Decorate(&person);
Tshirts.Decorate(&bigtrouser);
Tshirts.Show();
return 0;
}