设计模式《十一》——外观模式

简介

       观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度。

 

角色与职责

 

Facade:为方便调用,定义的统一包装接口

SubSyntem:功能提供者,指提供功能的类群。

使用场景

客户端与系统端解耦时,客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。

 

实现

#include <iostream>
#include <string>
using namespace std;
class SubSystemA {
public:
    void doThing() {
        cout << "SubSystemA run." << endl;
    }
};
class SubSystemB {
public:
    void doThing() {
        cout << "SubSystemB run." << endl;
    }
};
// 装饰类,对其他功能类进行装饰。
class Facade {
public:
    Facade() {
        m_sysA = new SubSystemA;
        m_sysB = new SubSystemB;
    }
    ~Facade() {
        if (m_sysA != NULL) delete m_sysA;
        if (m_sysB != NULL) delete m_sysB;
    }
    void doThing() {
        m_sysA->doThing();
        m_sysB->doThing();
    }
private:
    SubSystemA* m_sysA;
    SubSystemB* m_sysB;
};
int main(int argc, char* argv[]) {
    Facade* facade = new Facade;
    facade->doThing();
    delete facade;
    cin.get();
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值