23种设计模式C++源码与UML实现--外观模式
生活随笔
收集整理的這篇文章主要介紹了
23种设计模式C++源码与UML实现--外观模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
外觀模式
facade模式也叫外觀模式,是由GoF提出的23種設計模式中的一種,facade模式為一組具有類似功能的類群,比如類庫,子系統等等,提供一個一致的簡單界面。這個一致的簡單的界面被稱為facade。
Facade
為調用方,定義簡單的調用接口
Clients
調用者,通過facade接口調用提供某功能的內部類群
Packages
功能提供者,指提供功能的類群
適用于:為子系統提供統一一套接口,讓子系統更加容易使用。
// // Created by andrew on 2020/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; }總結
以上是生活随笔為你收集整理的23种设计模式C++源码与UML实现--外观模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【离散数学】纠错码基本理论
- 下一篇: 23种设计模式C++源码与UML实现--