• 结构型模式 外观模式


    结构型模式 外观模式

    Facade
            为调用方定义简单的调用接口。
    Clients
            调用者。通过Facade接口调用提供某功能的内部类群。
    Packages
            功能提供者。指提供功能的类群(模块或子系统)

    适用于:
            为子系统中统一一套接口,让子系统更加容易使用。

    /**
     * 结构型模式 外观模式
     * Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。
     * Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。
     *
     */
    
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <iostream>
    #include <string>
    
    class SystemA
    {
    public:
        void doThing()
        {
            std::cout << "systemA do ..." << std::endl;
        }
    };
    
    class SystemB
    {
    public:
        void doThing()
        {
            std::cout << "systemB do ..." << std::endl;
        }
    };
    
    class SystemC
    {
    public:
        void doThing()
        {
            std::cout << "systemC do ..." << std::endl;
        }
    };
    
    class Facade
    {
    public:
        Facade()
        {
            a = new SystemA();
            b = new SystemB();
            c = new SystemC();
        }
        ~Facade()
        {
            delete a;
            a = nullptr;
            delete b;
            b = nullptr;
            delete c;
            c = nullptr;
        }
    
        void doThing()
        {
            a->doThing();
            b->doThing();
            c->doThing();
        }
    
    private:
        SystemA *a;
        SystemB *b;
        SystemC *c;
    };
    
    void mytest()
    {
        Facade *f = new Facade();
        f->doThing();
        delete f;
        f = nullptr;
    
        return;
    }
    
    
    int main()
    {
        mytest();
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    display ntp-service sessions
    display ntp-service status
    MySQL与telnet安装
    YL_组播_IGMPv2-v3
    YL_组播_PIM-DM协议原理
    YL_组播_IGMP协议原理
    IIS发布站点问题
    css 定位及遮罩层小技巧
    MYSQL查询某字段中以逗号分隔的字符串的方法
    零度
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/7779017.html
Copyright © 2020-2023  润新知