定义
:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
意图
:将抽象与实现解耦。
桥接模式所涉及的角色
1. Abstraction(调用者)
:定义抽象接口,拥有一个Implementor类型的对象引用
2. RefinedAbstraction(抽象类)
:扩展Abstraction中的接口定义,继承Abstraction
3. Implementor(桥)
:是具体实现的接口,Implementor和RefinedAbstraction接口并不一定完全一致,实际上这两个接口可以完全不一样Implementor提供具体操作方法,而Abstraction提供更高层次的调用
4. ConcreteImplementor(被调用者)
:实现Implementor接口,给出具体实现
注意点:
a、定义一个桥接口,使其与一方绑定,这一方的扩展全部使用实现桥接口的方式。
b、定义一个抽象类,来表示另一方,在这个抽象类内部要引入桥接口,而这一方的扩展全部使用继承该抽象类的方式。
Jdk中用到的桥接模式:JDBC
JDBC连接数据库时:利用驱动来桥接
JDBC连接数据库时,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不动,原因就是JDBC提供了统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了
想通过实例来理解,可以看一下这位大佬的博文,感觉挺不错的:https://www.cnblogs.com/V1haoge/p/6497919.html
欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。