23种设计模式C++实例之外观模式
2015-12-16 10:25
507 查看
为各个不同的类提供统一的接口,然后通过外观模式将其组合起来,对外提供一个统一的接口。
#include <iostream> using namespace std; /* * 外观模式:将子系统中的一组接口提供一个一致的界面 * 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 * */ class SubsysA { public: void dothing() { cout << "SubsysA do thing" << endl; } }; class SubsysB { public: void dothing() { cout << "SubsysB do thing" << endl; } }; class SubsysC { public: void dothing() { cout << "SubsysC do thing" << endl; } }; class Facade { public: Facade() { m_sysA = new SubsysA; m_sysB = new SubsysB; m_sysC = new SubsysC; } ~Facade() { if (m_sysA != NULL) { delete m_sysA; m_sysA = NULL; } if (m_sysB != NULL) { delete m_sysB; m_sysB = NULL; } if (m_sysC != NULL) { delete m_sysC; m_sysC = NULL; } } void dothing() { m_sysA->dothing(); m_sysB->dothing(); m_sysC->dothing(); } private: SubsysA* m_sysA; SubsysB* m_sysB; SubsysC* m_sysC; }; int main() { // 使用外观模式之前 SubsysA* a = new SubsysA; a->dothing(); delete a; SubsysB* b = new SubsysB; b->dothing(); delete b; SubsysC* c = new SubsysC; c->dothing(); delete c; cout << endl; // 使用外观模式之前 Facade* facade = new Facade; facade->dothing(); delete facade; return 0; }
相关文章推荐
- C语言中define的用法
- OC语言——把四个十进制三位数存放到一个数组中,然后按升序排序
- c++ 自定义排序容器set
- C++命名空间namespace
- C++ 类模板不能实现分离式编译
- Debug实模式调试
- c++ 线程类
- 【C++】深度探索C++对象模型之虚拟成员函数(virtual member function)
- C++静态库与动态库
- 值得推荐的C/C++框架和库 (真的很强大)
- 【C++ STL应用与实现】22: 函数组合之1:如何使用std::bind (since C++11)
- 一个C++写的html解析库的简介
- leetcode笔记:Jump Game II
- 单链表C语言实现(带头节点)
- 内排序-数组实现(c++)
- Kruskal最小生成树算法代码实现(c++)
- c++ struct结构体初始化
- 数制转换(C语言实现)
- 表达式运算(C语言实现)
- 哈弗曼树(C语言实现)