【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式

练习源码:https://github.com/liaoooyx/Design-Patterns

例子1:设计模式读书笔记-----桥接模式 ——形状与颜色
【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式


例子2:桥接模式(Bridge Pattern)——手机与软件
【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式


例子3:桥连接模式—— 人与行为。
【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式
扩展描述:

人是个抽象类,分男人和女人;

当人想用交通工具的时候,就让人持有一个接口类:交通工具。交通工具又有它自己的实现类:自行车、汽车、火车、飞机。人想坐哪种交通工具的时候,通过接口“交通工具”去实现即可。

如果想增加一个功能,比如人要买房子,那再让人持有一个接口类:房子。房子又有它自己的实现类:宿舍、住宅、别墅,四合院等。人想住买哪种,让人通过持有的接口类去调用具体的实现即可。

如果有一人,存丰第三种人,太监,那么让太监去继承人这个抽象类,那么太监就可以很容易的可以坐车、买房子。而代码更改的却很少。


桥接模式的应用:
JDBC和桥接模式:jdbc桥连接过程解析
【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式
基于JDBC的应用程序:Mybatis、Hibernate等

驱动实现:
MySQL:com.mysql.jdbc.Driver
SQL server:com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle:oracle.jdbc.driver.OracleDriver


桥接模式结构:
(转自:https://blog.csdn.net/paincupid/article/details/43538887)
【23种设计模式之】10.桥接模式——示例整合,及JDBC的桥接模式
抽象类持有接口类的引用。

如果是2个维度的话,抽象类就持有一个接口类的引用,如果是多个维度的话,就持有多个接口类的引用。桥连接模式利于扩展,减少子类的个数。当多个维度变化的时候,使代码保持简洁。

举例:人是个抽象类,分男人和女人;当人想用交通工具的时候,就让人持有一个接口类:交通工具。交通工具又有它自己的实现类:自行车、汽车、火车、飞机。人想坐哪种交通工具的时候,通过接口“交通工具”去实现即可。如果想增加一个功能,比如人要买房子,那再让人持有一个接口类:房子。房子又有它自己的实现类:宿舍、住宅、别墅,四合院等。人想住买哪种,让人通过持有的接口类去调用具体的实现即可。如果有一人,存丰第三种人,太监,那么让太监去继承人这个抽象类,那么太监就可以很容易的可以坐车、买房子。而代码更改的却很少。

抽象的说:桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要