初学设计模式,想问一下decorator模式

06-05-04 kajiura
在这页http://www.jdon.com/designpatterns/decorator.htm中老师提到了即插即用的概念,但是我对装饰模式的作为一种独立的模式划分出来还是有一点疑惑。给一个对象动态的添加上额外的职责这个动作在我认为和代理模式有很大相近之处,而在http://www.microsoft.com/china/community/program/originalarticles/techdoc/proxymod.mspx这篇文章中所提到的智能引用代理我感觉上就是在提供装饰所提供的功能。希望这儿的高人们能够指点一下,是我对decorator的理解有误么?如果不是,那为何要将其从代理模式中分离出来?

初来乍到,也许问题很低级,但是希望高人们能解我之惑,谢谢!

banq
2006-05-08 20:12
》给一个对象动态的添加上额外的职责这个动作在我认为和代理模式有很大相近之处

两者是相似,但是有些细微的区别,主要是方法粒度不一样,装饰模式一般只是对特定行为方法增加额外职责;而代理模式则是所有方法增加新职责,而且 这个新职责是一个方面或一系列的。

另外,代理模式有远程代理等作用,可以起到一些特殊功能,而装饰模式只是一种结构上设计罢了。

我将这两种模式和职责链模式以及AOP同归为“过滤器”,是一种动态可插拔概念的设计,符合当今业务层动态组件设计要求。

猜你喜欢