设计模式(10) - Facade外观模式
2013-12-22 00:09
330 查看
1. 意图
为了给子系统中一系列的接口提供一个统一的接口,外观模式定义了一个更高层次的接口,使得子系统更容易使用。外观模式不同于适配器模式,因为外观模式简化了类结构,而适配器模式维持类结构不变。
外观模式提供了一条在子系统中构造我们自己的API的途径,来减少子系统中API的大小以及复杂度的增长。
2. UML类图
3. 代码实现
#include<iostream> using namespace std; class SubSystem1 { public: void method1() { cout<<"SubSystem1"<<endl; } }; class SubSystem2 { public: void method2() { cout<<"SubSystem2"<<endl; } }; class SubSystem3 { public: void method3() { cout<<"SubSystem3"<<endl;} }; //Facade class Facade { public: void methodA() { cout<<"Facade: methodA()"<<endl; sub1.method1(); sub2.method2(); } void methodB() { cout<<"Facade: methodB()"<<endl; sub2.method2(); sub3.method3(); } private: SubSystem1 sub1; SubSystem2 sub2; SubSystem3 sub3; }; int main() { Facade *fd = new Facade(); fd->methodA(); fd->methodB(); delete fd; return 0; }运行结果为:
Facade: methodA()
SubSystem1
SubSystem2
Facade: methodB()
SubSystem2
SubSystem3
相关文章推荐
- 数据库事务
- HTML DOM Style 对象介绍
- 设计模式(9) - Flyweight享元模式
- 设计模式(8) - Composite组合模式
- 十五章
- 设计模式(7) - Decorator装饰者模式
- 设计模式(6) - Adapter适配器模式
- The 5 Best Things You Can Say in a Job Interview
- 一致性哈希算法以及其PHP实现
- 做爱做的事,做有快感的事
- RCU
- CentOS中安装gcc编译器
- 【内存管理】:self.变量 和 变量 的区别
- 点击“加入购物车”按钮后系统是怎样进入购物车页面的?
- 设计模式(5) - Bridge桥接模式
- 设计模式(4) - Prototype原型模式
- TPTP 资料记录
- 小经典理解
- 内存管理
- 设计模式(3) - Builder建造者模式