Bridge 桥接模式——对象结构型。

1.动机

由于某些类型的固有的实现逻辑,使得他们有两个变化的维度乃至多个维度的变化。

2.定义

将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

3.用自己的一句话概述

将多种维度的属性连接起来,比如颜色和形状,可以用桥接模式定义黄色的菱形,从而只定义颜色和形状就行,从而避免排列组合方式的类定义。

4.优点

  • 由于抽象与实现分离,所以扩展能力强;
  • 其实现细节对客户透明。

5.缺点

  • 由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加了系统的理解与设计难度。

6.使用场景

  • 当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
  • 当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
  • 当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。

7.总结

  • 桥接模式使用“对象间的组合关系”,解耦了对象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化,所谓抽象和实现沿着各自维度的变化,即“子类化”它们。
  • 桥接模式有时候类似于多继承方案,但是多继承方案往往违背单一职责原则(即一个类只有一个变化的原因),复用性较差。桥接模式是比多继承方案更好的解决方案。
  • 桥接模式的应用一般在“两个非常强的变化维度”,有时一个类也有多于两个的变化维度,这时可以使用桥接模式的扩展模式。




0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注