装饰者模式Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的取代方案。意图:动态地给一个对象加入?一些额外的职责。就添加?功能来说,Decorator模式相比生成子类更为灵活。设计原则:1. 多用组合,少用继承。利用继承设计子类的行为,是...
分类:
其他好文 时间:
2014-07-28 14:46:43
阅读次数:
246
我们都知道,可以使用两种方式给一个类或者对象添加行为。
一是使用继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。
二是使用关联。组合即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用该对...
分类:
编程语言 时间:
2014-07-28 00:23:49
阅读次数:
236
python中的装饰器可以装饰函数,也可以装饰类,功能是向函数或者类添加一些功能。类似于设计模式中的装饰模式,它可以把装饰器的功能实现部分和装饰部分分开,避免类中或者函数中冗余的代码。
装饰器装饰函数:
def decrator(f1):
def newf():
print "strings will be connected:"
print f1();
return newf;...
分类:
编程语言 时间:
2014-07-28 00:21:15
阅读次数:
299
设计模式目录:设计模式 1 ——观察者模式设计模式 2 —— 装饰者模式
分类:
其他好文 时间:
2014-07-27 09:40:42
阅读次数:
194
构造型模式中的适配器模式、外观模式、装饰模式、代理模式都属于包装模式,都是对另外的类或对象的包装,只是各自的意图不同。
适配器模式通过对另外的类或对象的包装,将其接口转换为用户期望的接口,达到接口的适配的目的。
外观模式是对包装的一组类或对象提供一个高层接口,意图是简化接口,使系统更加容易使用。
装饰模式的意图是在不改变包装...
分类:
移动开发 时间:
2014-07-24 23:21:24
阅读次数:
304
装饰者模式的作用 装饰者模式可以复用系统中的各个单一功能组件,在运行时,可以将这些组件进行叠加,构造一个‘超级对象’,使得具有这些组件的功能。 装饰者模式的应用 举个用户下单的业务场景。 原有业务:用户下单,系统涉及到调用第三方接口,即下单接口。因此,当用户下单时,系统只需调用第三方接口来...
分类:
其他好文 时间:
2014-07-24 21:55:43
阅读次数:
220
子类用的技术都是一样的,那么有必要给他单独定一个子类吗? 这就是装饰模式生成的原因。 class MyBufferReader{ MyBufferedReader(被提高效率的类1 class){} MyBufferedReader(被提高效率的类2 class){} MyBufferedReade...
分类:
其他好文 时间:
2014-07-23 12:11:06
阅读次数:
184
1. 定义:装饰模式以透明的方式,动态地为一个对象(不是类)添加一些额外的功能。又名包装模式(Wrapper);2. 特性:提供了比用继承更灵活的替代方案。3. 设计原则:1). 多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用...
分类:
其他好文 时间:
2014-07-22 22:43:35
阅读次数:
273
在西方国家罗马字母阵营中,字体分为两大种类:Sans Serif和 Serif,打字机体虽然也属于 Sans Serif,但由于是等宽字体,所以另外独立出 Monospace 这一种类,例如在Web中,表示代码时常常要使用等宽字体。Serif的意思是,在字的笔画开始及結束的地方有额外的装饰,而且笔画...
分类:
其他好文 时间:
2014-07-22 22:43:15
阅读次数:
194
一、概念 当想要对已有的对象进行功能增强时,可以自定义类,将已有对象传入,基于现有的功能,并加强功能。 装饰类通常会通过构造方法接受被修饰的对象。 二、例子 class Person { public void eat(){ sysout(“I am eating”); } } class Pers...
分类:
其他好文 时间:
2014-07-22 00:04:35
阅读次数:
176