关于Adapter模式和Decorator模式

07-12-16 X.Underset
最期研究了一下模式,感觉Adapter模式和Decorator模式很像,在运用中也比较难以取舍,个人感觉还是Adapter模式比较好一点,各位道友有相同经历的发个贴交流一下。

[该贴被admin于2008-09-23 08:52修改过]

1
banq
2007-12-17 13:07
Decorator模式要求更严格一些,需要统一接口,对外是统一形象,而Adapter模式则是使用宽泛,没有什么特别要求。

xmuzyu
2007-12-18 11:23
Decorator强调在统一接口的情况下来添加一些功能。而Adapter则强调的是来改变接口。他们之间的相同之处应该是通过继承来统一接口,而通过组合来扩张功能和修改接口。

bonepole
2007-12-19 12:55
如果用统一的接口去生成一个特殊的 Decorator,那用这个接口的实例就访问不到在Decorator中新定义的方法了啊?那使用Decorator模式还有什么用呢?

xmuzyu
2007-12-19 16:36
新加的方法是为统一的接口服务的,也可以说是新加的功能。Decorator就是用来在接口统一的情况下来动态添加功能。而Adapter是用来改变接口的。我觉得设计模式应该注重于能解决的问题,而不应该太在意代码层了。

[该贴被xmuzyu于2007-12-20 00:38修改过]

ITfuture
2008-09-18 17:48
我看设计模式也有一段时间了...

Adapter和Decorator其实两种不同的模式

关注点不同。应用环境也不同。使用前提不同。

Decorator是对对象动态添加一些职责

Adapter是将不兼容的类纠合在一起使用的。

本质上他们是有区别的。他们没有可比性我觉得

zouyc
2011-01-26 16:56
个人觉得设计模式从结构、行为、职责来学习,比较容易理解。

也许某两个设计模式看起来很像,但是从他们的结构或者行为来理解,就比较好区分了。

猜你喜欢