装饰者模式定义:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
设计原则:类应该对扩展开放,对修改关闭
在Java中IO的类就是使用了装饰都模式
相关代码:http://download.csdn.net/detail/deng0zhaotai/7964311...
分类:
移动开发 时间:
2014-09-23 21:09:45
阅读次数:
208
Decorator模式:动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。一.基本概念:1.设计原则:(1)多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对..
分类:
其他好文 时间:
2014-09-18 16:58:54
阅读次数:
141
已经创建完成的对象,由于后期业务需要,对旧的对象需要扩展特别多的功能,如果使用子类继承。可能导致类爆炸,那该如何解决这一问题,今天就研究下,装饰者模式!
分类:
其他好文 时间:
2014-09-16 15:31:20
阅读次数:
148
感觉装饰者模式挺实用的,它可以在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象,跟名字一样,名副其实的装饰者。装饰对象特点:(1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。(2) 装饰...
分类:
编程语言 时间:
2014-09-11 18:45:32
阅读次数:
207
/* * 装饰者模式提供比继承更有弹性的替代方案 * 在不改变原构造函数的情况下,添加新的属性或功能*///需要装饰的类(函数)function Macbook() { this.cost = function () { return 1000; };}// 加个内存fun...
分类:
编程语言 时间:
2014-09-11 17:06:12
阅读次数:
198
设计模式目录:设计模式 1 ——观察者模式设计模式 2 —— 装饰者模式设计模式 3 —— 迭代器和组合模式(迭代器)设计模式 4 —— 迭代器和组合模式(组合)设计模式 5 —— 工厂模式设计模式 6 —— 单件模式设计模式 7 —— 命令模式概述第1部分 问题引入第2部分 定义和实现第3部分 使...
分类:
其他好文 时间:
2014-09-11 15:05:32
阅读次数:
335
装饰者模式是一种在框架中应用广泛的设计模式,在JavaAPI中文件流操作就应用了这样的模式,例如InputStream in = new BufferedInputStream(new FileInputStream(file));其中,BufferedInputStream被用来装饰FileInp...
分类:
其他好文 时间:
2014-09-09 17:49:59
阅读次数:
281
这一章看完之后,我感觉,装饰者模式就是对类继承的一种递归调用式的组合应用,很好的是实现了开闭原则,可以有效的扩展应用程序。比如书中的例子,有几种饮料,每种饮料的价格已经知道了,但是我们又有很多种的调料,每种调料也有它的价格,我们现在需要是在饮料中加调料,那么这样一来,饮料的售价就会变化,如何来描述....
分类:
其他好文 时间:
2014-08-31 14:24:51
阅读次数:
187
设计模式目录:设计模式 1 ——观察者模式设计模式 2 —— 装饰者模式设计模式 3 —— 迭代器和组合模式(迭代器)设计模式 4 —— 迭代器和组合模式(组合)设计模式 5 —— 工厂模式设计模式 6 —— 单件模式概述:
分类:
其他好文 时间:
2014-08-28 16:07:29
阅读次数:
246
模式说明装饰者模式装饰者模式可以动态地给一个对象增加一些额外的职责。就增加功能来说,装饰者模式相比生成子类更为灵活。模式结构图程序示例说明:一辆车,装饰窗户,装饰轮子代码:class Car(object): def description(self): print 'basic...
分类:
其他好文 时间:
2014-08-25 19:03:54
阅读次数:
209