概念
外观模式(Facade模式),是由GoF提出的23种设计模式中的一种。外观模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作外观。
角色和职责
Façade
为调用方, 定义简单的调用接口。
Clients
调用者。通过Facade接口调用提供某功能的内部类群。
Packages
功能提供者。指提供功能的类群(模块或子系统)
适用于:为子系统中统一一套接口,让子系统更加容易使用。
案例
#include <iostream>
using namespace std;
class SystemA
{
public:
void doThing()
{
cout << "systemA do...." << endl;
}
};
class SystemB
{
public:
void doThing()
{
cout << "systemA do...." << endl;
}
};
class SystemC
{
public:
void doThing()
{
cout << "systemA do...." << endl;
}
};
class Facade
{
public:
Facade()
{
a = new SystemA;
b = new SystemB;
c = new SystemC;
}
~Facade()
{
delete a;
delete b;
delete c;
}
void doThing()
{
a->doThing();
b->doThing();
c->doThing();
}
protected:
private:
SystemA *a;
SystemB *b;
SystemC *c;
};
void main()
{
/*
SystemA *a = new SystemA;
SystemB *b = new SystemB;
SystemC *c = new SystemC;
a->doThing();
b->doThing();
c->doThing();
delete a;
delete b;
delete c;
*/
Facade *f = new Facade;
f->doThing();
delete f;
cout<<"hello..."<<endl;
system("pause");
return ;
}
关注公众号:《码之有道》,一起聊游戏全栈开发!
1、公众号回复:【教程】获取零基础游戏开发客户端+服务端全套教程。
2、公众号回复:【实战】获取企业级实战项目。
3、公众号回复:【资料】获取大学四年整理的所有自学资料。