外观模式:引入一个外观角色封装类来简化客户端与各个子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。

如果客户端在运行一个功能,需要首先运行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;
}

运行结果:
设计模式-外观模式-C++实现

相关文章:

  • 2022-12-23
  • 2021-04-23
  • 2022-12-23
  • 2021-08-26
  • 2021-12-30
  • 2021-11-21
猜你喜欢
  • 2021-05-20
  • 2022-02-17
  • 2021-05-25
  • 2021-08-21
相关资源
相似解决方案