【发布时间】:2012-01-15 11:40:03
【问题描述】:
我正在阅读设计模式,但有一个问题我觉得我自己无法回答。 Adapter、Bridge 和 Decorator 在结构上是不同的,还是它们编码相同但只是应用了不同的语义?
【问题讨论】:
标签: design-patterns adapter decorator bridge
我正在阅读设计模式,但有一个问题我觉得我自己无法回答。 Adapter、Bridge 和 Decorator 在结构上是不同的,还是它们编码相同但只是应用了不同的语义?
【问题讨论】:
标签: design-patterns adapter decorator bridge
在结构上,这些模式非常相似。很多不同之处在于模式的意图,而不是它们的构建方式。
适配器模式用于将具有一个接口的类适配到另一个接口的类。通常,您正在适应的类是遗留代码或在您无法访问(或至少无法更改)的库中。适配器的一个关键区别在于您正在调整的接口和您提供的接口是不同的。
bridge 模式与适配器非常相似,因为它可以将具有一个接口的类桥接到另一个接口的类。但是,主要区别在于意图。使用桥接模式,该类被明确设计为以这种方式工作。开发人员仍然可以访问委派给的类,但开发人员有意选择以这种方式设计它。
decorator 模式将返回与被装饰的类相同的接口。它用于扩展现有类的行为,而不是更改其接口。
【讨论】: