关于Adapter模式和Decorator模式

最期研究了一下模式,感觉Adapter模式和Decorator模式很像,在运用中也比较难以取舍,个人感觉还是Adapter模式比较好一点,各位道友有相同经历的发个贴交流一下。
[该贴被admin于2008-09-23 08:52修改过]

Decorator模式要求更严格一些,需要统一接口,对外是统一形象,而Adapter模式则是使用宽泛,没有什么特别要求。

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

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

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

我看设计模式也有一段时间了...
Adapter和Decorator其实两种不同的模式
关注点不同。应用环境也不同。使用前提不同。
Decorator是对对象动态添加一些职责
Adapter是将不兼容的类纠合在一起使用的。
本质上他们是有区别的。他们没有可比性我觉得

个人觉得设计模式从结构、行为、职责来学习,比较容易理解。

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