0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设计模式结构性:桥接模式

冬至子 来源:码农架构 作者:小智 2023-06-08 10:49 次阅读

桥接模式不是将两个不相干的类链接,而是将一个需要多维度变化的类拆分成抽象部分和实现部分,并且在抽象层对两者做组合关联,是用组合的方式来解决继承的问题。

举个例子,如果一个类在两个维度分别有m和n种变化,采用继承的方式就需要扩展出m*n个子类,且一个维度每增加一种变化就多出另一个维度变化总数的子类;如果将两个维度拆分再组合,加起来也只有m+n个子类,且每个维度独立扩展,一个维度增加一种变化只需要增加1个子类

将俩个维度分离,使他们可以独立变化。又称为柄体(Handle and Body)模式或者接口(interface)模式。

结构图

图片

角色与理解

  • 桥接模式包含如下角色:
  • Abstraction (抽象类):用于定义抽象类的接口,一般为抽象类而不是接口,其中维持一个Implementor的引用
  • RefinedAbstraction (扩充抽象类):继承或者实现抽象类,通常情况下为具体类而不是抽象类,实现抽象类中定义的抽象业务方法,在具体业务方法中可以调用Implementor中定义的业务方法
  • Implementor (实现类接口):定义实现类的接口,一般而言,Implementor接口仅提供基本操作,并交由子类去实现
  • ConcreteImplementor (具体实现类):实现Implementor中定义的基本操作方法
  • 抽象类持有实现类接口的对象,调用实现类接口中定义的方法
  • 本质上是两个独立变化的维度,一个抽象层引用另一个抽象层的东西,以实现通过实现类进行业务方法的调用

核心代码

  • 抽象类

图片

  • 实现接口

图片

  • 客户端

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 桥接器
    +关注

    关注

    0

    文章

    78

    浏览量

    45358
收藏 人收藏

    评论

    相关推荐

    关于模式遇到的问题

    VMware使用模式,已经手动设置ip地址和主机ip同一网段,但是ifconfig显示的ip地址却和vmnet8(NAT)同一网段?怎么解决?
    发表于 10-16 15:06

    CentOS静态IP配置(模式

    [2018-08-26]-[CentOS]CentOS静态IP配置(模式
    发表于 05-12 08:27

    优化电动汽车的结构性

    优化电动汽车的结构性能以提高效率和安全迅速增长的全球电动汽车(EV)市场预计到2027年将达到8028亿美元。在电池和高压电子设备的驱动下,电动汽车的运行和维护成本往往低于传统汽车,几乎不会产生
    发表于 09-17 08:10

    DS31256 HDLC控制器的配置步骤—模式

    DS31256 HDLC控制器的配置步骤—模式 本应用笔记提供了怎样配置模式下DS31
    发表于 04-21 14:59 1534次阅读
    DS31256 HDLC控制器的配置步骤—<b class='flag-5'>桥</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>

    设计模式结构型模式

    的接口功能。(二)应用实例:读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。(三)构成要素:二、模式(一)定义:
    发表于 11-06 17:51 1次下载
    设计<b class='flag-5'>模式</b>之<b class='flag-5'>结构型模式</b>

    模式的目标与设计

    模式的目标是使对象的抽象部分与实现部分分离,使之可以分别独立变化,以尽量避免产生耦合。
    的头像 发表于 06-01 14:29 525次阅读
    <b class='flag-5'>桥</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>的目标与设计

    设计模式结构性:适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
    的头像 发表于 06-07 11:56 761次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:适配器<b class='flag-5'>模式</b>

    设计模式结构性:组合模式

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。
    的头像 发表于 06-08 10:34 1243次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:组合<b class='flag-5'>模式</b>

    设计模式结构性:门面模式

    门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。
    的头像 发表于 06-08 14:28 677次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:门面<b class='flag-5'>模式</b>

    设计模式结构性:享元模式

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。
    的头像 发表于 06-08 17:32 743次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:享元<b class='flag-5'>模式</b>

    设计模式结构性:代理模式

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式
    的头像 发表于 06-09 15:27 840次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:代理<b class='flag-5'>模式</b>

    远程网关模式实现同一局域网组网管理(Superlink)

    远程网关模式配置介绍及示例功能简述智联物联远程网关模式,是指电脑侧Superlink远程
    的头像 发表于 04-26 15:32 1142次阅读
    远程网关<b class='flag-5'>桥</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>实现同一局域网组网管理(Superlink)

    模式应用场景

    1、什么是模式? Decouple an abstraction from its implementation so that the two can vary independently.
    的头像 发表于 10-09 14:30 1227次阅读
    <b class='flag-5'>桥</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>应用场景

    存储器结构性分道篇.zip

    存储器结构性分道篇
    发表于 01-13 09:07 1次下载

    网络模式是什么? 网络模式和路由模式的区别

    ,以便将多个计算机连接在一起并共享资源。 网络模式和路由模式的区别 网络
    的头像 发表于 05-10 13:48 4315次阅读