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