美文网首页
设计模式(结构型)-- 桥接模式

设计模式(结构型)-- 桥接模式

作者: zhujunhua | 来源:发表于2020-09-16 13:30 被阅读0次

    需掌握程度: 了解 (不常用,认识即可)

    桥接模式的原理解析

    桥接模式,也叫作桥梁模式,英文是 Bridge Design Pattern。这个模式可以说是 23 种设计模式中最难理解的模式之一了。
    在 GoF 的《设计模式》一书中,桥接模式是这么定义的:“Decouple an abstraction from its implementation so that the two can vary independently。”
    翻译成中文就是:“将抽象和实现解耦,让它们可以独立变化。”

    定义中的“抽象”,指的并非“抽象类”或“接口”,而是被抽象出来的一套“类库”,它只包含骨架代码,真正的业务逻辑需要委派给定义中的“实现”来完成。而定义中的“实现”,也并非“接口的实现类”,而是一套独立的“类库”。“抽象”和“实现”独立开发,通过对象之间的组合关系,组装在一起。

    经典应用场景:JDBC驱动

    JDBC 驱动是桥接模式的经典应用。
    JDBC 本身就相当于“抽象”。注意,这里所说的“抽象”,指的并非“抽象类”或“接口”,而是跟具体的数据库无关的、被抽象出来的一套“类库”。具体的 Driver(比如,com.mysql.jdbc.Driver)就相当于“实现”。注意,这里所说的“实现”,也并非指“接口的实现类”,而是跟具体数据库相关的一套“类库”。
    JDBC 和 Driver 独立开发,通过对象之间的组合关系,组装在一起。JDBC 的所有逻辑操作,最终都委托给 Driver 来执行。

    桥接模式的另外一种理解方式:“一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展。”
    通过组合关系来替代继承关系,避免继承层次的指数级爆炸。
    这种理解方式非常类似于,我们之前讲过的“组合优于继承”设计原则。

    参考:
    极客时间-设计模式之美

    相关文章

      网友评论

          本文标题:设计模式(结构型)-- 桥接模式

          本文链接:https://www.haomeiwen.com/subject/uqrpektx.html