码迷,mamicode.com
首页 > 其他好文 > 详细

装饰者模式

时间:2018-10-11 22:03:16      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:http   out   att   .com   png   bubuko   UNC   show   一个   

  装饰者模式(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;
};

 

装饰者模式

标签:http   out   att   .com   png   bubuko   UNC   show   一个   

原文地址:https://www.cnblogs.com/mathyk/p/9774599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!