设计模式C++实现笔记

Facade 外观模式(结构型模式)

2019-02-24  本文已影响0人  lixin_karl

介绍

  为子系统的一组接口提供一个一致的界面,Facade模式定义了一个高层的接口,这使得子系统更加容易使用。

外观模式参与者

实现代码

class BuyTickets{//Subsystem 
public:
    void buying(){
        std::cout<<"先买票"<<std::endl;
    }
};

class Travel{//Subsystem 
public:
    void travling(){
        std::cout<<"游玩ing........."<<std::endl;
    }
};

class BackHome{//Subsystem 
public:
    void back(){
        std::cout<<"回家了"<<std::endl;
    }
};

class Facade{//Facade 
public:
    void working(){
       auto buy = new BuyTickets();
       auto travel = new Travel();
       auto backHome = new BackHome();
       buy->buying();
       travel->travling();
       backHome->back();
       delete buy;
       delete travel;
       delete backHome;
    }
};

int main()//客户端调用
{
    //一般我们这么做
    auto buy = new BuyTickets();
    auto travel = new Travel();
    auto backHome = new BackHome();
    buy->buying();
    travel->travling();
    backHome->back();
    std::cout<<"---------------------------------------------"<<std::endl;
    //外观模式这么做
    Facade facade;
    facade.working();
}

优点

参考

《设计模式:可复用面向对象软件的基础》

上一篇 下一篇

猜你喜欢

热点阅读