美文网首页设计模式C++实现笔记
Facade 外观模式(结构型模式)

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

作者: lixin_karl | 来源:发表于2019-02-24 18:04 被阅读0次

介绍

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

外观模式参与者

  • Facade 外观
  • Subsystem 子系统
    例如:你要出去旅游,首先买票,然后游玩,然后坐车回来。

实现代码

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();
}

优点

  • 对用户屏蔽子系统组件
  • 实现子系统与用户之间松耦合的关系

参考

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

相关文章

网友评论

    本文标题:Facade 外观模式(结构型模式)

    本文链接:https://www.haomeiwen.com/subject/qcebyqtx.html