意图:
动态的给一个对象增加一些额外的职责,就增加功能来说,decorator模式相比生成子类更为灵活。
结构:
CComponent 是定义一个对象的接口,可以给这些对象动态地添加职责。CConcreteComponent是定义了一个具体的对象,
也可以给这个对象添加职责,Decorator装饰抽象类,继承了Component从外类来扩展Component类的功能,但对于CComponent来说,
是无需知道CDecorator的存在的。至于ConcreteDecorator就是具体的装饰对象,起到给CComponent添加职责的功能。
实例结构:
代码:
class CPerson{
public:
CPerson(string name):m_strName(name){}