外观模式:引入一个外观角色封装类来简化客户端与各个子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。
如果客户端在运行一个功能,需要首先运行A对象,然后在运行B对象,最后运行C对象。客户端需要一次调用这个三个对象,如果这个功能被调用的频繁的话,每次调用都需要运行三个对象,不是很方便。外观模式就是要解决这样的问题,把需要运行的三个对象包装起来,每次调用的时候,只要调用这个包装类也就是外观类就可以了。降低了客户端和每个子系统的耦合。
#include <stdio.h>
class SystemA {
public:
void A() {
printf("启动A系统!\n");
}
};
class SystemB {
public:
void B() {
printf("启动B系统!\n");
}
};
class SystemC {
public:
void C() {
printf("启动C系统!\n");
}
};
class System{
public:
System() {
_a = new SystemA;
_b = new SystemB;
_c = new SystemC;
}
void startSys() {
printf("开始启动系统!\n");
_a->A();
_b->B();
_c->C();
}
private:
SystemA* _a;
SystemB* _b;
SystemC* _c;
};
int main() {
System* sys = new System;
sys->startSys();
return 0;
}
运行结果:


本文介绍外观模式,一种用于简化客户端与多个子系统交互的设计模式。通过创建一个统一的外观类,封装了子系统复杂的调用过程,降低客户端与子系统的耦合度,使调用更加便捷。
2431

被折叠的 条评论
为什么被折叠?



