模式定义

将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。

类图

应用场景

在业务功能具有抽象功能和差异实现时需要独立的适应后面可能遇到的变化时使用桥接模式

优点

1.符合开闭原则

2.提供方法但是隐藏底层具体实现

3.将功能和实现分离开来,有利于解耦

要点总结

  • Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化,所谓抽象和实现沿着各自维度的变化,即“子类化”它们
  • Bridge模式有时候类似于多继承方案,但是多继承方案往往违背了单一职责原则,复用性比较差,Bridge模式是比多继承方案更好的解决方法。
  • Bridge模式的应用一般在“两个非常强的变化维度”,有时一个类也有多于两个维度的变化,这时可以使用Bridge的扩展模式。

Go语言代码实现

工程目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kq0E1ST7-1626706015004)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c3b5d4fdf4ff4cb2b460446d120b5725~tplv-k3u1fbpfcp-watermark.image)]

Bridge.go

 package Bridgetype Set struct {impl map[string]bool}func NewSet() *Set {return &Set{make(map[string]bool)}}func (s *Set) Add(key string) {s.impl[key] = true}func (s *Set) Iter(f func(key string)) {for key := range s.impl{f(key)}}

Bridge_test.go

 package Bridgeimport ("fmt""testing")func TestNewSet(t *testing.T) {s := NewSet()s.Add("hello")s.Add("world")s.Iter(func(key string) {fmt.Printf("key: %s\n", key)})}

设计模式--桥(Bridge)模式相关推荐

  1. 设计模式之——bridge模式

    Bridge模式,又叫桥接模式,是针对同一接口进行扩展与实现操作的一种设计模式. 这种模式,与之前学过的适配器模式具有相似的地方,也有不同的地方,下面就让我们一一解析吧. 首先,我们要了解到,为什么需 ...

  2. Java设计模式---桥接Bridge模式

    参考于 : 大话设计模式 马士兵设计模式视频 写在开头: 桥接模式主要用于一件事物分成了两个维度,进行排列组合,比如礼物,可以分成优雅的礼物(抽象),花(具体),排列组合优雅的花! 1.为什么使用桥接 ...

  3. 设计模式(六)桥连模式Bridge(结构型)

    1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种"多维度的变化"?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而 ...

  4. java bridge 模式_Java设计模式之桥模式(Bridge模式)介绍

    Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用桥模式 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以 ...

  5. 李建忠设计模式——桥模式

    目录 1.桥模式 1.动机 2.模式定义 3.结构图 4.模式的组成 2.实例 1.描述 2.代码实现 要点总结 参考: 1.桥模式 1.动机 由于某些类型的固有的实现逻辑,使得他们具有两个变化的维度 ...

  6. 如何让孩子爱上设计模式 ——10.桥接模式(Bridge Pattern)

    如何让孩子爱上设计模式 --10.桥接模式(Bridge Pattern) 标签: 设计模式初涉 我有故事,你有酒吗?这年头写个技术文不讲个故事都不行,行,我讲: 还有发现很多的技术博文都开始有喜欢往 ...

  7. java 类爆炸_设计模式系列·类爆炸之 Bridge 模式

    迷之微笑 经过 C 哥的精心指导,消息中心终于上线!代码运行了半个月,稳健无 bug . 王小二托着下腮,看着代码,一抹迷之微笑随之闪现^_^.作为一名有追求的码农,此时的快乐或许只有自己能懂. 消息 ...

  8. 设计模式之桥接模式(Bridge)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Sin ...

  9. 设计模式学习笔记——桥接(Bridge)模式

    设计模式学习笔记--桥接(Bridge)模式 @(设计模式)[设计模式, 桥接模式, bridge] 设计模式学习笔记桥接Bridge模式 基本介绍 类的功能层次结构 类的实现层次结构 使用桥接模式的 ...

最新文章

  1. 20150726 填坑日记
  2. mysql 修改某列数据_mysql修改表某列数据问题
  3. 使用fliter实现ie下css中rgba的效果
  4. 03Prism WPF 入门实战 - Region
  5. 【WXS全局对象】Date
  6. hadoopsdk使用_hadoop部署使用问题及解决
  7. Jeecgboot Feign、分布式压测、分布式任务调度
  8. sklearn—特征工程
  9. Linux学习总结(45)——Linux服务器出现卡慢的基本解决方法
  10. 在JAVA中把JSON数据格式化输出到控制台
  11. [LeetCode]Plus One
  12. pyspark to mysql_Pyspark学习笔记第2篇:connect mysql
  13. 【LVGL】animation动画路径方式介绍
  14. 大学必备C语言基础知识(一)
  15. ESXI6.7安装补丁
  16. 了解利用API接口通过网格策略的增长模式
  17. 【0基础学java】教学日志:javaSE-面向对象6-面向对象前4章上机作业点评,主要涉及继承、封装、多态三个章节的内容
  18. Surface3 2+64 wifi版本重装8.1系统(疑难解答中无从‘驱动器恢复‘选项,另一种方式成功)
  19. python_爬虫 16 Scrapy框架之(二)快速入门
  20. [慎用] Windows10 第三方磁盘管理工具

热门文章

  1. cvid matlab,WAKE-WIN10-SOFT-软件-Matlab配置及工具箱
  2. 什么是工装服_王俊凯穿连体工装亮相跨年晚会,中国风满满的设计,尽显帅气...
  3. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传
  4. 定位漏水与非定位漏水的区别?
  5. java https 慢_jetty https慢怎么调优?
  6. python文件处理,python文件处理
  7. 成功解决return tf.nn.softmax(x, axis=axis) TypeError: softmax() got an unexpected keyword argument 'axis
  8. Interview:算法岗位面试—10.10下午—上海某银行算法岗位(偏数据分析,四大行之一)的技术面—关于项目的考察
  9. AutoLisp:AutoLisp实现对AutoCAD进行输入命令,选择对象,实现不同方向进行缩放
  10. 深度学习中常用的误差方法