zoukankan      html  css  js  c++  java
  • 设计模式学习Facade(外观)

    意图:为子系统中的一组接口提供一个一致的界面.定义一个高层接口,该接口是的这一个子系统的更加容易使用.

    动机:是的子系统之间的通信和相互依赖达到最小,达到该目的的途径之一就是引入一个外观(Facade)对象,它为子系统中较为一般的设施提供了一个单一而简单的界面.

    示例图:

    facade

    Facade作为生态子系统的统一界面用于外接交互

    适用性:

    为复杂子系统提供一个简单接口

    Facade提供了客户与子系统以及其他子系统的分离

    为各个自系统提供每层的入口点.

    示例代码:

    //生态子系统的Facade类作为外部接口的界面,内部子系统的复杂构建不为外界所知
    class CEcoSystem
    {
    public:
        CEcoSystem(void);
    public:
        ~CEcoSystem(void);
    public:
        void Draw()
        {
            //绘制树林信息
            m_forest->Draw();
        }
        void MadeSound()
        {
            //树林发出声音
            m_forest->MadeSound();
        }
    private:
        //CAnimalArray m_animals;
        CForest* m_forest;
    };

    //外部代码

    CEcoSystem sys;
        sys.Draw();
        sys.MadeSound();

    //内部复杂实现示例图

    facade subsystem

  • 相关阅读:
    MySQL数据库之数据类型
    MySQL数据库之数据操作
    MySQL数据库之表的操作
    十、原子操作
    九、std::async异步线程
    八、条件变量
    cisco笔试记录
    七、单例设计模式
    基于HTTP的功能追加协议
    使用栈来计算后缀表达式
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340737.html
Copyright © 2011-2022 走看看