外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
就是将复杂的子类系统抽象到同一个的接口进行管理,外界只需要通过此接口与子类系统进行交互,而不必直接与复杂的子类系统进行交互。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。
#include<iostream>
using namespace std;
class System1
{
public:
void run()
{
cout << "王者农药启动..." << endl;
}
};
class System2
{
public:
void run()
{
cout << "某鱼直播启动..." << endl;
}
};
class System3
{
public:
void run()
{
cout << "王者农药直播开始..." << endl;
}
};
//游戏模式
class Exterior
{
public:
Exterior()
{
system1 = new System1;
system2 = new System2;
system3 = new System3;
}
void Systemrun()
{
system1->run();
system2->run();
system3->run();
}
private:
System1* system1;
System2* system2;
System3* system3;
};
void main()
{
Exterior* exterior = new Exterior;
exterior->Systemrun();
}
优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。
缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。