• 设计模式---外观模式


    一、模式定义

    外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。

    二、模式结构

    外观模式包含如下角色:

    • Facade: 外观角色
    • SubSystem:子系统角色

    三、代码样例

    #include <iostream>
    #include "Facade.h"
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        Facade fa;
        fa.wrapOpration();
        
        return 0;
    }
    ///////////////////////////////////////////////////////////
    //  Facade.h
    //  Implementation of the Class Facade
    //  Created on:      06-十月-2014 19:10:44
    //  Original author: colin
    ///////////////////////////////////////////////////////////
    
    #if !defined(EA_FD130A87_92A9_4168_9B33_7A925C47AFD5__INCLUDED_)
    #define EA_FD130A87_92A9_4168_9B33_7A925C47AFD5__INCLUDED_
    
    #include "SystemC.h"
    #include "SystemA.h"
    #include "SystemB.h"
    
    class Facade
    {
    
    public:
        Facade();
        virtual ~Facade();
    
        void wrapOpration();
    
    private:
        SystemC *m_SystemC;
        SystemA *m_SystemA;
        SystemB *m_SystemB;
    };
    #endif // !defined(EA_FD130A87_92A9_4168_9B33_7A925C47AFD5__INCLUDED_)
    ///////////////////////////////////////////////////////////
    //  Facade.cpp
    //  Implementation of the Class Facade
    //  Created on:      06-十月-2014 19:10:44
    //  Original author: colin
    ///////////////////////////////////////////////////////////
    
    #include "Facade.h"
    
    
    Facade::Facade(){
        m_SystemA  = new SystemA();
        m_SystemB = new SystemB();
        m_SystemC = new SystemC();
    }
    
    
    
    Facade::~Facade(){
        delete m_SystemA;
        delete m_SystemB;
        delete m_SystemC;
    }
    
    void Facade::wrapOpration(){
        m_SystemA->operationA();
        m_SystemB->operationB();
        m_SystemC->opeartionC();
    }

    运行结果:

  • 相关阅读:
    基础面试
    三级联动
    数据库分裤分表操作
    缓存的三种方式
    php部分--session的三种用法
    css
    数组
    生成中国地区随机IP
    xml的读取
    React入门
  • 原文地址:https://www.cnblogs.com/zhanghu52030/p/9598135.html
Copyright © 2020-2023  润新知