装饰者模式是动态的将责任附加到另一个对象上,由这个对象负责;这个装饰与被装饰的组件接口一致,因此对使用该组件的客户透明;其中的关键点是装饰者可以在所委托被装饰者的行为之前和之后,加上自己的行为,已达到特点的目的。
代码如下:
-------------Component
//装饰者模式一般使用抽象类
public abstract class Beverage
{...
分类:
其他好文 时间:
2014-06-27 09:09:56
阅读次数:
269
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有...
分类:
编程语言 时间:
2014-06-24 11:51:12
阅读次数:
307
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式结构图: Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Deco.....
分类:
其他好文 时间:
2014-06-24 11:40:22
阅读次数:
125
1. 概念动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活2. 案例/********************************************************************** * * FILE : Demo01.ja....
分类:
其他好文 时间:
2014-06-23 00:12:09
阅读次数:
266
设计模式总结(2)======================================================decorator pattern装饰者和被装饰者有相同的 超类型;可以用一个或多个 装饰者来 包装 一个对象;既然装饰者和被装饰者对象有相同的超类型,所以在任何需要原始对象...
分类:
其他好文 时间:
2014-06-21 07:38:48
阅读次数:
143
Advisor VS. DecoratorService Decoration is
augmented withService Advice.Advisor:
跟Decorator相似,且普通,因为它作用于接口,在编译时根本就不会去考虑。Decorator: 在编译时,Tapestry就会知道哪一...
分类:
其他好文 时间:
2014-06-10 20:25:55
阅读次数:
252
1.动机有时我们希望给某个对象而不是整个类添加一些功能。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称...
分类:
其他好文 时间:
2014-06-10 12:51:49
阅读次数:
168
装饰者模式是很有意思的一种设计模式,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。不是使用继承每回在编译时超类上修改代码,而是利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。
代码应该如同晚霞中的莲花一样地关闭(免于改变),如同晨曦中的莲花一样地开放(能够扩展)。
这就是,设计原则之五:类应该对扩展开放,对...
分类:
编程语言 时间:
2014-06-08 17:35:12
阅读次数:
252
Euler 14的不同解法 ----所涉及的知识 1. yield 2.BF 3. decorator 4.cache 5.等等
def euler_problem_14():
"""
最直接粗暴的解法:就是直接如下所示了
"""
max_count = 1
max_value = 1
for i in xrange(10010...
分类:
编程语言 时间:
2014-06-05 04:46:16
阅读次数:
266
装饰模式的目的是为了给一个对象动态的增加一些功能。装饰对象和被装饰的对象实现同一个接口,装饰对象持有被装饰对象的实例。类图:示意性代码:package
com.javadesignpattern.Decorator;public interface Component { void s...
分类:
其他好文 时间:
2014-06-01 17:06:22
阅读次数:
338