设计模式——外观模式_Facade Pattern

外观模式,又称门面模式。其实是为外部访问子系统而提供的一个窗口

Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. (要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用。)


UML类图



C++代码实现

#include <iostream>
using namespace std;

class SubSystemA {
public:
	void SubSystemOperation() { cout << "call SubSystemA::SubSystemOperation()" << endl; }
};

class SubSystemB {
public:
	void SubSystemOperation() { cout << "call SubSystemB::SubSystemOperation()" << endl; }
};

class Facade {
public:
	Facade() {
		_pA = new SubSystemA();
		_pB = new SubSystemB();
	}
	~Facade() {
		delete _pA;
		delete _pB;
	}
	void FacadeMethod() {
		_pA->SubSystemOperation();
		_pB->SubSystemOperation();
	}

private:
	SubSystemA* _pA;
	SubSystemB* _pB;
};


#include "Facade.h"


int main()
{
	Facade *pFacade = new Facade();
	pFacade->FacadeMethod();
	delete pFacade;

	return 0;
}

外观模式不改变系统对外暴露的接口方法,只改变内部的处理逻辑,其他兄弟模块的调用产生了不同的结果。不管子系统内部是多么杂乱无章,只要有外观模式对象在,就可以做到金玉其外败絮其中。该方法是一个很好的封装方法。


外观模式的使用场景:

1,为一个复杂的模块或子系统提供一个供外界访问的接口。

2,外界对子系统的访问只要黑箱操作即可。

3,防技术水平低下的程序员给项目带来不必要的风险。实现类似沙箱的功能。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值