设计模式读书笔记:Facade(外观)
2015-07-10 16:36
549 查看
意图:
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构图:来自 《23种设计模式 - 郗晓勇》
实现:https://github.com/panshiqu/patterns/tree/master/Facade
Facade
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构图:来自 《23种设计模式 - 郗晓勇》
实现:https://github.com/panshiqu/patterns/tree/master/Facade
Facade
#include "Input.h" #include "Output.h" namespace NS_FACADE { class Facade { public: Facade() {} virtual ~Facade() {} void inputAndOutput(void) { Input in; Output out; out.outputStr(in.inputStr()); } }; } /* namespace NS_FACADE */Input
#include <iostream> namespace NS_FACADE { class Input { public: Input() {} virtual ~Input() {} std::string inputStr(void) { std::string str; std::cin >> str; return str; } }; } /* namespace NS_FACADE */Output
#include <iostream> namespace NS_FACADE { class Output { public: Output() {} virtual ~Output() {} void outputStr(std::string str) { std::cout << str << std::endl; } }; } /* namespace NS_FACADE */main
#include "Facade/Facade.h" using namespace NS_FACADE; int main(void) { Facade facade; facade.inputAndOutput(); }附加:
相关文章推荐
- ios设置按钮点击时的文字和图片(而非非背景)
- C++中重载与重写函数区别及虚函数
- 37.两个链表的第一个公共结点
- C++ STL中的vector的内存分配与释放
- 包的完整定义
- C/C++浮点数在内存中的存储方式
- cocos2dx 编写shader 遇到 溢出问题
- MyBatis初级
- ArcGIS Engine标注(Label)
- Alcatraz在xcode安装无效的解决方案
- Android手机安全卫士(二)---设置、自定义控件属性、md5加密、手机防盗
- C++在struct与class差异
- Java -- 使用阻塞队列(BlockingQueue)控制线程通信
- docker命令
- spark接hbase遇到版本兼容的问题
- linux小白日记
- windows下文件名命名规则的正则表达式
- jquery blockui
- Longest Substring Without Repeating Characters
- 栈的C语言 数组实现