Geek

博客园 首页 新随笔 联系 订阅 管理

 

定义: 将抽象部分与它的具体实现部分分离,使它们都可以独立地变化

使用组合的方式 建立两个类之间的联系,而不是使用继承的方法

使用场景:

1.抽象和具体实现之间增加更多的灵活性

2.一个类存在两个(或多个)独立变化的未读,且俩各个(或多个)维度都需要独立进行扩展

3.不希望使用继承,或因为多层继承导致系统类的个数剧增

 

优点:

1.分离抽象部分及其具体实现部分

2.提高系统的可扩展性

3.符合开闭原则

4.符合合成复用原则

缺点:

  1. 增加了系统的理解与设计难度
  2. 需要正确地识别出系统中两个独立变化的维度

 

相关的设计模式:

适配器模式: 这两个都是为了两东西共同工作,但是桥接模式是分离抽象和具体的实现,

而适配器模式是为了适配接口(复用功能相似的接口),达到某种目的(复用代码)

 

桥接模式避免了直接继承

而是将抽象和实现之间 加了一个桥接类,把抽象的实现委托给桥接的那个类

 

 

DriverManager 提供了 getConnection 方法

JDBC 为不同的数据库提供了相同的接口,不同数据库的厂商 实现了 Connection接口,java 即可调用

 

 

 

可以看看相关桥接模式 的文章 https://blog.csdn.net/kangbin825/article/details/72025533

即,通过 DriverManager 这个桥 去屏蔽了 抽象和实现

调用抽象 方法 会先调用 这个 DriverManager提供的接口方法(DriverManager就是个委托类)

再由这个委托去调用具体的实现

 

public class BridgeTest {

 

public static void main(String[] args) {

 

Bridge bridge = new MyBridge();

 

/*调用第一个对象*/

Sourceable source1 = new mysqlSource();

bridge.setSource(source1);

bridge.method();

 

/*调用第二个对象*/

Sourceable source2 = new OracleSource();

bridge.setSource(source2);

bridge.method(); //其实 还是调用的 source.method()

}

}

 

 

 

 

 

posted on 2020-03-25 19:29  .geek  阅读(203)  评论(0编辑  收藏  举报