装饰者模式(Decorator)的c++实现示例
来源:互联网 发布:黑客linux入门 pdf 编辑:程序博客网 时间:2024/05/17 06:58
水平有限,请多指正!
装饰者模式(Decorator)示例
例子改编自《设计者模式解析(第二版)》214页,人民邮电出版社
意图:动态的给一个对象添加职责;即提供了“即插即用”方法,不用重新编译已有部分。
问题:要使用的对象将执行所需的基本功能。但是,可能需要为这个对像添加某些功能,这些附加的功能可能发生在对象的基本功能之前或之后。
解决方案:可以无需创建子类而扩展一个对象的功能
优点:类的层次结构大小和复杂度有了很大程度的降低
缺点:
1)如果装饰者本身是被装饰的,那么访问装饰模式中引进的特性将是非常困难的甚至是危险的。
2)系统对装饰者的使用顺序是敏感的。(这个也应算优点,顺序灵活 2014年7月加)
附:显然,如果要更改被装饰者的基本功能的情况是不能用装饰者模式的。
参考文献:
[1]《设计者模式解析(第二版)》,人民邮电出版社,Alan Shalloway等著,徐言生译
[2]《设计模式初学者指南》,机械工业出版社,Allen Holub著,徐迎晓译
对示例的描述:
1)具体组件SalesTicket(即被装饰者)实现基本功能(即打印票据正文),需要给它加个表头和表尾,于是用两个具体装饰类Header和Footer完成附加功能。
2)例子改编自参考文献[1],不明白可以看。
3)使用编译器vc6.0通过。
- 装饰者模式(Decorator)的c++实现示例
- 装饰者模式(Decorator)的c++实现示例
- 设计模式示例二 Decorator(装饰者)
- 装饰者模式(Decorator)的c++实现(改进)
- 装饰模式(Decorator)的具体实现
- Java 实现装饰者(Decorator)模式
- Java 实现装饰者(Decorator)模式
- Decorator 装饰者模式
- 装饰者模式(Decorator)
- Decorator 装饰者模式
- 装饰者模式(Decorator)
- decorator装饰者模式
- 装饰者模式(Decorator)
- Decorator 装饰者模式
- 装饰者模式--Decorator
- 装饰者模式(Decorator)
- 装饰者(Decorator)模式
- 装饰者模式decorator
- 启用硬件和DirectX加速
- Servlet实现文件下载
- 用命令模式实现对象存储——对象与关系数据库
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 给层加上最大化,最小化和关闭按钮(经典代码)适合做浮动层类。
- 装饰者模式(Decorator)的c++实现示例
- JSP中include指令和include行为区别
- VC++开发BHO插件——定制你的浏览器
- PPC(Pocket PC)中直接显示二进制数组(byte[])类型的图片
- 客户端下载文件
- SAP ABAP OLE 输出数据到 Excel 无法自动保存的解决
- 类WindowXp (CYisongStartMenu)开始菜单 编程指南
- C#中substring ()的用法
- Strategy模式