设计模式之桥接模式
目的在于将抽象与其实现分离,以便两者可以独立变化。独立变化的同时能够根据抽象类的对象关联从而能够将两个继承结构联动起来。就像在两个结构之间建立个桥梁一样进行通信,所以叫桥接模式。
应用场景
- 如果想避免抽象类与实现的永久绑定,可以在运行时间选择和切换实现类。
- 抽象类和接口都应该通过子类来进行拓展,在桥接模式中,可以使用子类来进行组合的同时能够独立拓展他们。
- 接口的实现的变化对客户端无影响。
- 如果想要在多个对象类中共享实现,并且避免让客户端感知到。
桥接模式结构图
代码
主要分为四部分,1.抽象类 2.抽象实现类 3.接口类 4.接口实现类
1 |
|
抽象方法中引用了Colors类变量,使用实现类中的buildShape方法实现具体功能。
1 | public interface Colors { |
通过使用Color接口,实现类实现Colors中的paint方法实现Color
1 | public class App { |
1 | 结果: |
上面的例子中,颜色和图形是两个独立不同的维度,两个可以分别变化。将两个维度设计为两个不同的继承的结构,在两个结构之间使用在抽象类中的关联来达到链接的目的,这个链接成为两个继承结构通信的桥梁。所以为桥接模式。