外观模式
外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
封装的内容可以是相互之间毫无关联的东西,但是是一个共同的功能下的。
#include <iostream>
using namespace std;
// 外观模式
// 电视机
class Tv {
public:
void On() {
cout << "电视机打开" << endl;
}
void off() {
cout << "电视机关闭" << endl;
}
};
// 灯
class Light {
public:
void On() {
cout << "灯打开" << endl;
}
void off() {
cout << "灯关闭" << endl;
}
};
// 音响
class Audio {
public:
void On() {
cout << "音响打开" << endl;
}
void off() {
cout << "音响关闭" << endl;
}
};
// 通过这个类可以yi jian
class CinemaMode {
public:
CinemaMode() {
pTv = new Tv;
pLight = new Light;
pAudio = new Audio;
}
void onCinema() {
pTv->On();
pLight->off();
pAudio->On();
}
void offCinema() {
pTv->off();
pLight->On();
pAudio->off();
}
~CinemaMode() {
delete pTv;
delete pLight;
delete pAudio;
}
Tv* pTv;
Light* pLight;
Audio* pAudio;
};
void test01() {
auto mode = new CinemaMode;
mode->onCinema();
cout << "//" << endl;
mode->offCinema();
delete mode;
}
int main() {
test01();
return 0;
}