GoF设计模式桥/适配器/装饰器

时间:2011-12-07 23:29:46

标签: design-patterns adapter decorator bridge

我正在阅读设计模式,有一个问题我觉得我无法自己回答。 Adapter,Bridge和Decorator在结构上是不同的,还是它们编码相同但只是应用了不同的语义?

1 个答案:

答案 0 :(得分:10)

在结构上,模式非常相似。很多不同之处在于模式的 intent 而不是它们的构建方式。

适配器模式用于使具有一个接口的类适应另一个接口的类。通常,您要调整的类是遗留代码,或者是您无法访问(或至少无法更改)的库。与适配器的一个关键区别是,您正在调整的界面和您提供的界面不同

网桥模式与适配器非常相似,因为它可以将具有一个接口的类桥接到另一个接口的接口。但是,关键区别在于意图。通过桥接模式,该类明确地设计为以这种方式工作。开发人员仍然可以访问被委派的类,但开发人员故意选择以这种方式进行设计。

装饰器模式将返回正在装饰的类的相同接口。它用于扩展现有类的行为,而不是更改其接口。