c++设计模式之外观模式
2016-07-25 21:08
393 查看
外观模式(Facade Pattern)-结构型模式
这个外观类为子系统提供一个共同的对外接口, 客户(Clients)对象通过一个外观接口读写子系统中各接口的数据资源。
意图:外观模式(Facade)为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。
适用性:
1.设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
2.开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
3.维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
兑现代码:
这个外观类为子系统提供一个共同的对外接口, 客户(Clients)对象通过一个外观接口读写子系统中各接口的数据资源。
意图:外观模式(Facade)为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。
适用性:
1.设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
2.开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
3.维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
兑现代码:
#include <iostream> #include <string> using namespace std; class Package1 { public: void dosomething1() { cout<<"dosomething1"<<endl; } }; class Package2 { public: void dosomething2() { cout<<"dosomething2"<<endl; } }; class Package3 { public: void dosomething3() { cout<<"dosomething3"<<endl; } }; class PacketFacade { public: PacketFacade() { m_package1 = new Package1; m_package2 = new Package2; m_package3 = new Package3; } public: void dosomething() { m_package1->dosomething1(); m_package2->dosomething2(); m_package3->dosomething3(); } private: Package1 * m_package1; Package2 * m_package2; Package3 * m_package3; }; void main() { PacketFacade *packetFacade = new PacketFacade; packetFacade->dosomething(); cout<<"nihao..."<<endl; system("pause"); return ; }
相关文章推荐
- 指针malloc分配空间与数组区别
- [LeetCode练习题-C语言]203. Remove Linked List Elements
- C语言 思维导图
- ACM最终排名(C语言)
- LeetCode:319. Bulb Switcher、一行C语言表达式判断给定的整数是否是一个2的幂
- 推荐:国外程序员整理的 C++ 资源大全
- c++学习笔记(6)——关于随机数的生成(待完善)
- 选夫婿1
- C++builder编译别人工程报错
- C语言中野指针与内存泄漏
- C++封装POSIX 线程库(二)条件变量的封装
- 1019. 数字黑洞 (20)
- ubuntu安装MySQL Connector/C++ from Source
- c++构造函数浅析
- GeekBand C++ 面向对象高级编程(上) 第一周笔记
- C++文件读取操作详解
- C++中隐式转换和显示转换
- Leetcode 31. Next Permutation (Medium) (cpp)
- c语言基础
- C++11新特性:可变参数模板