600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 23种设计模式C++源码与UML实现--外观模式

23种设计模式C++源码与UML实现--外观模式

时间:2023-12-29 00:23:56

相关推荐

23种设计模式C++源码与UML实现--外观模式

外观模式

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

Facade

为调用方,定义简单的调用接口

Clients

调用者,通过facade接口调用提供某功能的内部类群

Packages

功能提供者,指提供功能的类群

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

//// Created by andrew on /11/21.//#include <iostream>using namespace std;class SubSystemA{public:void doThing(){cout << "Subsystem A run" << endl;}};class SubSystemB{public:void doThing(){cout << "SubSystem B run" << endl;}};class SubSystemC{public:void doThing(){cout << "SubSystem B run" << endl;}};class Facade{public:Facade(){sysA = new SubSystemA;sysB = new SubSystemB;sysC = new SubSystemC;}~Facade(){delete sysA;delete sysB;delete sysC;}public:void doThing(){sysA->doThing();sysB->doThing();sysC->doThing();}private:SubSystemA *sysA;SubSystemB *sysB;SubSystemC *sysC;};int main(int argc, char *argv[]) {// 没有使用之前cout << "before use facade" << endl;SubSystemA *sysA = new SubSystemA;SubSystemB *sysB = new SubSystemB;SubSystemC *sysC = new SubSystemC;sysA->doThing();sysB->doThing();sysC->doThing();delete sysA;delete sysB;delete sysC;// 是要给你之后cout << "after usr facade" << endl;Facade *f = new Facade;f->doThing();delete f;return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。