外观模式façade
概念
Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。
角色和职责
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 main1414()
{
/*
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 ;
}