c++外观模式façade

概念
Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。

角色和职责
在这里插入图片描述
Façade
为调用方, 定义简单的调用接口。
Clients
调用者。通过Facade接口调用提供某功能的内部类群。
Packages
功能提供者。指提供功能的类群(模块或子系统)

适用于:
为子系统中统一一套接口,让子系统更加容易使用。

案例
#include
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 ;
}

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页