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

Facade
为调用方,定义简单的调用接口。
Clients
调用者。通过 Facade接口调用提供某功能的内部类群。
Packages
功能提供者。指提供功能的类群(模块或子系统)
适用于:
为子系统中统一一套接口,让子系统更加容易使用。
代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 
 | #include <iostream>
 using namespace std;
 
 class SubSystemA
 {
 public:
 void doThing()
 {
 cout << "SubSystemA run" << endl;
 }
 };
 
 class SubSystemB
 {
 public:
 void doThing()
 {
 cout << "SubSystemB run" << endl;
 }
 };
 
 class SubSystemC
 {
 public:
 void doThing()
 {
 cout << "SubSystemC run" << endl;
 }
 };
 
 
 class Facade
 {
 public:
 Facade()
 {
 sysA = new SubSystemA;
 sysB = new SubSystemB;
 sysC = new SubSystemC;
 }
 ~Facade()
 {
 delete sysA;
 delete sysB;
 delete sysC;
 }
 void doThing()
 {
 sysA->doThing();
 sysB->doThing();
 sysC->doThing();
 }
 private:
 SubSystemA* sysA;
 SubSystemB* sysB;
 SubSystemC* sysC;
 };
 
 int main()
 {
 Facade* f = new Facade;
 f->doThing();
 cout << "Hello world!" << endl;
 return 0;
 }
 
 | 
输出:
| 12
 3
 4
 
 | SubSystemA runSubSystemB run
 SubSystemC run
 Hello world!
 
 |