关于decorator

02-09-14 庆次
不知道各位有没有一定的理解,可以说说么

banq
2002-09-14 15:04
先说说你的理解

cc
2002-09-17 09:27
那我先说说我的理解吧。

以前以为自己理解了Decorator,可是后来看了jive中的Decorator,就比较不清除了。jive中使用了Composite与Decorator的组合,这一点我不能理解。

ForumMessageFilter继承了ForumMessage,同时又封装了他的一个对象。这样作有什么好处呢?

Decorator与proxy模式结构非常相似。如果说Decorator是一个过滤器的话,是不是又太简单了?

浆糊
2002-09-17 10:04
油漆工啊,呵呵 。。。就是在原来的东西上再刷一层东西,包装一下啊,让它更漂亮点,功能在多点。

其实看看java的io,你就会很清楚。动态增加功能,可以使你的余地很大。关于目的和解释,板桥的文章写的很清楚了

cc
2002-09-17 10:59
不啊,我觉的不会有这么简单。仅仅是一个过虑的话,就不用与Composite模式联合使用了。

浆糊
2002-09-17 11:06
过滤?我说的是动态增加功能。

为什么一定要和Composite一起用啊,模式之间可以一起使用,但是要根据实际的情况,没有说什么模式一定要和什么模式一起用的说法,只是有些模式的关系比较密切,经常回一起用,但并不是一定的。

也许你说的仅仅是一个环境中的解决方法。

cc
2002-09-17 11:17
当然不是啊,你看看jive和设计模式书上的文章,全部是合在一起使用的。你也看看jdon中的文章也是一样的。

浆糊
2002-09-17 12:54
在看看设计模式

Composite:可以将decorator看做退化的,仅有一个组件的组合。然后装饰器的目的是给对象添加一些额外的职责,他的目的不在于对象聚集。

我没有看出来composite一定要和decorator一起用啊。如果一定要一起用的话,那还是变成另外的一个模式,因为他们的关系是那么紧密,不可分离,可以作为一个原子模式。

cc
2002-09-17 14:46
当然他们可以不在一起使用,当然也叫decorator,稍有些编程基础的人也会用出这种decorator。

实现的好坏要看组合的威力。你仅仅单一了解一种模式,而不会组合起来使用的话,就太片面了!

浆糊
2002-09-17 14:54
呵呵。。。

看来是曲解了,我上面谈论的是不一定要一起使用,不是说一定要单独使用,看来老兄接触模式的时间好象不是太久啊。什么模式和什么模式结合一起用是要看情况的,不是为了模式而用模式。模式是前人的经验,我们使用模式不能按部就班,还是要按照实际的情况具体的分析。

浆糊
2002-09-17 14:59
不知道你是否理解 “给类动态的添加一些额外的功能”,这个意思。这个才是decorator主要目的

cc
2002-09-17 15:19
我当然没有你这个老鸟熟练啦,所以要拿出来向你请教了。

“给类动态的添加一些额外的功能”这个我还是能理解的。大部分情况下,我要是用decorator也是向你说得一样那么做。只是后来看了jive,又回头看了看书,一种新的思路出来了。就我感觉,合在一起用会更清晰一些,我得个人感觉而已。

浆糊
2002-09-17 15:40
:),我还不老,何为老鸟

切磋一下,捣浆糊了

cc
2002-09-17 16:08
^_^ , 我也不小了,当然不想当菜鸟。

C一下!

庆次
2002-09-19 10:51
能举例说明么

猜你喜欢
2Go 1 2 下一页