【设计模式】Bridge Design pattern 桥接模式

这篇具有很好参考价值的文章主要介绍了【设计模式】Bridge Design pattern 桥接模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.桥接模式要解决的问题

多个维度的变化引起的继承组合指数级增长

例子

一个物体有不同形状和不同颜色,如何用类来表示它们,这里包含了两个变化维度,一个是物体的形状,一个是颜色

继承的方式

【设计模式】Bridge Design pattern 桥接模式
如果使用继承的方式,此时要增加一个形状就要多两个类,或者增加一个颜色也要多两个类,这个增长是指数级的

组合的方式

【设计模式】Bridge Design pattern 桥接模式
如果是组合的方式,此时增加一个形状,那就只需要增加一个形状的类,要增加一个颜色也只用增加一个颜色的类,变化就被控制住了

2.实际使用场景

JDBC API和JDBC Driver, JDBC API接口去管理连接和解析操作返回的数据,但是底层具体是怎么做连接的,怎么做查询的是JDBC Driver来做的,在使用JDBC API的时候需要指定不同的JDBC Driver,这也是桥接模式的一个特点,具体实现是需要在使用的时候再指定的

3.桥接模式的结构

将一个很大的类或者一堆紧密相关的类拆分成抽象和接口,让他们分别来管理不同的变化
由一个抽象的类包含一个接口组成。抽象的类像是一个提供功能的API,共client直接使用。被组合的接口往往提供原子的方法,这些原子方法往往被抽象类直接调用或者组合使用。接口可以有很多种不同的实现,而抽象类也可以有自己的子类去扩展更多的功能
【设计模式】Bridge Design pattern 桥接模式

4.桥接模式相关的设计原则和面向对象特性

  1. 封装
    高层不需要知道底层实现的细节,比如在使用JDBC API的时候,只需要用Class.forName()指定一个driver,不需要知道driver是怎么实现的
  2. SOLID-Open close原则
    每次加一个维度的类,只需要新建新的抽象类或者新建新的实现即可,不需要改动任何类,比如,如果要实现不同的API,那就新加一个API的类,如果要新建不同的数据库实现,那就新加一种driver
  3. SOLID-Single responsibility原则
    将一个大类划分成了不同的类来负责做不同的事情,职责更单一了

5.和其他模式的联系

1.和Adapter的类似点
2.和State,strategy的类似点
3.可以和抽象工厂
4.可以和Builder模式组合使用

参考文献:https://refactoring.guru/design-patterns/bridge文章来源地址https://www.toymoban.com/news/detail-400712.html

到了这里,关于【设计模式】Bridge Design pattern 桥接模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。桥接模式通过组合而不是继承来实现这种分离。 桥接模式的主要思想是将抽象和实现分离,让它们可以独立地变化。抽象部分包含高层逻辑,而实现部分包含底层实

    2024年02月15日
    浏览(38)
  • 桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern)是一种很实用的结构型模式,如果系统中某个类存在 两个独立变化的维度 ,通过该模式可以 将这两个维度分离出来 ,使得两者可以 独立扩展 。桥接模式用一种巧妙的方式处理 多层继承 存在的问题, 用抽象关联取代了传统的多重继承 ,将类之间的

    2024年02月05日
    浏览(47)
  • 生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]

            生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生成器模式通过将对象的构建过程与其表示分离,使得相同的构建过程可以创建不同的表示。这有助于减少构造函数的参数个数,提高代码的可读性和可维

    2023年04月11日
    浏览(44)
  • 观察者设计模式(Observer Design Pattern)[论点:概念、组成角色、相关图示、示例代码、框架中的运用、适用场景]

            观察者设计模式(Observer Design Pattern)是一种行为型设计模式,它定义了一种对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生改变时,通知所有观察者对象,使它们能够自动更新。 主题(Subject):主题是一个抽象类或

    2023年04月24日
    浏览(46)
  • 【Design Pattern 23种经典设计模式源码大全】C/Java/Go/JS/Python/TS等不同语言实现

    经典设计模式源码详解,用不同语言来实现,包括Java/JS/Python/TypeScript/Go等。结合实际场景,充分注释说明,每一行代码都经过检验,确保可靠。 设计模式是一个程序员进阶高级的必然选择,不懂设计模式,就像写文章不懂得层次,盖房子没有结构。只有充分懂得设计之道,

    2023年04月11日
    浏览(43)
  • 设计模式之Bridge模式的C++实现

    目录 1、Bridge模式的提出 2、Bridge模式的定义 3、Bridge模式总结 4、需求描述 5、多继承方式实现 6、使用Bridge设计模式实现         在软件功能模块设计中,如果类的实现功能划分不清晰,使得继承得到的子类往往是随着需求的变化,子类急剧膨胀,充斥重复代码。将类要实现

    2024年02月13日
    浏览(46)
  • 设计模式详解-桥接模式

    类型:结构型模式 实现原理:将抽象类和实现类分离,使其独立,然后使用接口再将二者连接起来。 意图:将抽象部分与实现部分分离,使它们都可以独立的变化。 主要解决:类变化频繁时用继承可能会出现的类爆炸问题。 如何解决:减少类的耦合关系,让类独立变化。

    2024年02月12日
    浏览(45)
  • 设计模式-桥接模式

    适配器模式 类似,以后也会遇到意思接近一样的设计模式。在开发中一般多个模式混用,且根据不同的场景进行搭配,桥接模式也是 结构型模式 将抽象的部分和实现的部分分离,使它们都可以独立的变化。通俗来说,就是通过组合来 桥接 其它的 行为或维度 与适配器模式业

    2024年02月11日
    浏览(46)
  • 设计模式之~桥接模式

    桥接模式:         将抽象部分与它的实现部分分离,使他们都可以独立地变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。         什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因

    2024年02月07日
    浏览(40)
  • 设计模式:桥接模式

    桥接模式(Bridge Pattern):旨在将抽象部分和实现部分解耦,使它们可以独立地变化。这种模式通过将抽象和实现分离,使它们可以独立地进行扩展和修改,而不会相互影响。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 假如需要使用大

    2024年01月25日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包