首页 > 代码库 > Facade外观模式(C++实现)

Facade外观模式(C++实现)

外观模式:外观模式的意图是为系统中的大量对象提供一个一致的对外接口,以简化系统的使用。它提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。但外观并不屏蔽系统里的对象,如果需要,用户完全可以越过外观的包装使用底层对象以获得更灵活的功能。

外观模式结构图如下:

给出一个简单的C++实现

#include<iostream>using namespace std;class SubSystemA{public:	SubSystemA(){}	~SubSystemA(){}	void Operation()	{		cout<<"SubSystemA operating!"<<endl;	}};class SubSystemB{public:	SubSystemB(){}	~SubSystemB(){}	void Operation()	{		cout<<"SubSystemB operating!"<<endl;	}};class Facade{private:	SubSystemA* pSubSyatemA;	SubSystemB* pSubSystemB;public:	Facade()	{    pSubSyatemA = new SubSystemA();	pSubSystemB = new SubSystemB();	}	~Facade()	{		delete pSubSyatemA;		delete pSubSystemB;	}	void Operation()	{		pSubSyatemA->Operation();		pSubSystemB->Operation();	}};int main(){	Facade *f =new Facade();	f->Operation();	delete f;	return 0;}