装饰器模式:
装饰器模式动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰器模式比生成子类实现更为灵活。
装饰器模式实例之变形金刚:
从类图可以看出,Changer和Car都实现了Transform的move接口,且Changer有个transform的依赖注入,是用来指向Car的,从而装饰Car。
这次实例和以后的实例将会采用智能指针的形式,就不用自己去释放内存了 。
抽象构件类Transform:
//抽象构件类Transform
class Transform{
public:
virtual void move() = 0;
};
具体构件类Car:
//具体构件类Car
class Car : public Transform{
public:
Car(){
cout << "变形金刚是一辆车!" << endl;
}
void move(){
cout << "在陆地上移动。" << endl;
}
};