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

外观模式

为各个不同的类提供统一的接口,然后通过外观模式将其组合起来,对外提供一个统一的接口。将子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。相当于存在一种委托的关系。
**例如:**现在有一个相机,想要拍出漂亮的照片,就需要自己手动调节光圈、快门,但是如果想要方便简单,就需要外观模式,照相机变成自动挡,只需要自己对准目标按下快门,所有需要手动调整的都变成自动调节。

#include <iostream>
#include <cstring>
using namespace std;

class SubSys
{
    public:
        virtual ~SubSys(){}
        virtual void doing()=0;
};

class SubSysA : public SubSys
{
    public:
        virtual void doing(){
            cout<<"SubSysA doing"<<endl;
        }
};

class SubSysB : public SubSys
{
    public:
        virtual void doing(){
            cout<<"SubSysB doing"<<endl;
        }
};

class SubSysC : public SubSys
{
    public:
        virtual void doing(){
            cout<<"SubSysC doing"<<endl;
        }
};

class Facade
{
    public:
        Facade(){
            A = new SubSysA();
            B = new SubSysB();
            C = new SubSysC();
        }
        void doing()
        {
            A->doing();
            B->doing();
            C->doing();
        }
    private:
        SubSys *A;
        SubSys *B;
        SubSys *C;
};

int main()
{
    SubSys *a = new SubSysA();
    a->doing();
    SubSys *b = new  SubSysB();
    b->doing();
    SubSys *c = new SubSysC();
    c->doing();
    Facade *facade = new Facade();
    facade->doing();
    delete facade;
    delete a;
    delete b;
    delete c;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值