zoukankan      html  css  js  c++  java
  • 装饰者模式

      装饰者模式(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;
    };
  • 相关阅读:
    C++笔记 谓词 1
    win7 ipv6设置(isatap)
    C++笔记
    打水印
    jquery导航滚动固定在顶部
    javascript获得属性
    tr光棒效果
    按字母查找
    js购物车
    数据采集
  • 原文地址:https://www.cnblogs.com/mathyk/p/9774599.html
Copyright © 2011-2022 走看看