装饰者模式
Posted mathyk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰者模式相关的知识,希望对你有一定的参考价值。
装饰者模式(Decorator Pattern)动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活。
/*装饰者模式*/ class Car { public: virtual void show() = 0; }; class RunCar : public Car { public: virtual void show() { cout<<"可以跑"<<endl; } }; class SwimCarDirector : public Car { public: SwimCarDirector(Car *car) { m_car = car; } void swim() { cout<<"可以游泳"<<endl; } virtual void show() { m_car->show(); swim(); } private: Car *m_car; }; class FlyCarDirector : public Car { public: FlyCarDirector(Car *car) { m_car = car; } void fly() { cout<<"可以飞"<<endl; } virtual void show() { m_car->show(); fly(); } private: Car *m_car; };
以上是关于装饰者模式的主要内容,如果未能解决你的问题,请参考以下文章