Java设计模式(十二)桥接模式

Java设计模式(十二)桥接模式
wshunli桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
桥接模式
桥接模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
桥接模式包含如下角色:
(1) Abstraction:抽象类,抽象部分的接口。通常在这个对象里面,要维护一个实现部分的对象引用,在抽象对象里面的方法,需要调用实现部分的对象来完成。这个对象里面的方法,通常都是跟具体的业务相关的方法。Shape
(2) RefinedAbstraction:扩充抽象类,扩展抽象部分的接口,通常在这些对象里面,定义跟实际业务相关的方法,这些方法的实现通常会使用Abstraction中定义的方法,也可能需要调用实现部分的对象来完成。Circle
(3) Implementor:实现类接口,定义实现部分的接口,这个接口不用和 Abstraction 里面的方法一致,通常是由 Implementor 接口提供基本的操作,而 Abstraction 里面定义的是基于这些基本操作的业务方法,也就是说 Abstraction 定义了基于这些基本操作的较高层次的操作。DrawAPI
(4) ConcreteImplementor:具体实现类,真正实现 Implementor 接口的对象。GreenCircle、RedCircle
1、创建桥接实现接口
public interface DrawAPI { |
2、创建实现了 DrawAPI 接口的实体桥接实现类
public class GreenCircle implements DrawAPI { |
3、使用 DrawAPI 接口创建抽象类 Shape
public abstract class Shape { |
4、创建实现了 Shape 接口的实体类
public class Circle extends Shape { |
5、使用 Shape 和 DrawAPI 类画出不同颜色的圆
|
桥接模式的优缺点:
优点:抽象和实现的分离;优秀的扩展能力;实现细节对客户透明。
缺点:桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。
本文实现源码:https://github.com/wshunli/design-patterns/tree/master/src/ch12
参考资料
1、Java设计模式之十五(桥接模式) - CSDN博客
https://blog.csdn.net/shaopeng5211/article/details/8827507
2、JAVA设计模式之 桥接模式【Bridge Pattern】 - CSDN博客
https://blog.csdn.net/janice0529/article/details/44102637
3、java中的桥接模式 - 简书
https://www.jianshu.com/p/c71562c98258
4、讲故事,学(Java)设计模式—桥接模式 - ImportNew
http://www.importnew.com/6857.html
5、桥接模式 | 菜鸟教程
http://www.runoob.com/design-pattern/bridge-pattern.html






