1, 什么是桥接

桥,  提供给两方, 或者多方相交汇的作用,

例如, A 函数想调用 B 函数,

常见的方法就是, 直接在A 中显式 调用B, 这样存在高耦合,  如果我们使用一个中间函数C, 在C里面显调用A, 再调用B, 像是这样

1.1  A -> B

1.2  C -> A -> B

A B 耦合就解开了,

1.3  更抽象的理解使用,   比如从数据库里面的数据, 怎么就变成了 Java 中的对象呢?  这中间肯定就有桥接模式的使用, 有很多很多的桥, 将数据库里面的数据, 解析成了Java 对象

2, 优缺点

2.1 解耦合,  如同第一点中所说的 , A 和 B 之间实现了解耦合

2.2 代码更加面向对象, 说白了, 写的代码牛逼

2.3 通过桥接模式可以实现不同接口直接的数据转换

2.4 A 和 B 虽然解了耦合,  但如果我 A 调完 B 我还要执行 A 中的一些代码怎么办, 就需要对A 函数就行拆分封装,  如果A里面很多调用的话, 就增加了代码的复杂程度,  越复杂,  等同于增加了, 代码维护性,  使用之前先考虑考虑

3, 代码示例

// 抽象桥
public interface IBridge {// 将hdmi 信号转换成vgaboolean HdmiToVga(IHdmi hdmi, IVga vga);
}// 实例桥
public class Bridge implements IBridge {@Overridepublic boolean HdmiToVga(IHdmi hdmi, IVga vga) {String data = hdmi.getData();System.out.println("对数据进行转换:" + data);vga.setData(data);return false;}
}// 抽象HDMI 协议
public interface IHdmi {String getData();boolean setData(String data);
}// 实例HDMI 信号协议
public class Hdmi implements IHdmi {private String data;@Overridepublic String getData() {return data;}@Overridepublic boolean setData(String data) {this.data = data;return true;}
}// 抽象Vga 协议
public interface IVga {String getData();boolean setData(String data);
}// 实例Vga
public class Vga implements IVga {private String data;@Overridepublic String getData() {return data;}@Overridepublic boolean setData(String data) {System.out.println("VGA 成功接收了数据: " + data);this.data = data;return true;}
}public static void main(String[] args) {IBridge bridge = new Bridge();IHdmi hdmi = new Hdmi();hdmi.setData("hello vga");IVga vga = new Vga();bridge.HdmiToVga(hdmi, vga);System.out.println(vga.getData());}//=========================
对数据进行转换:hello vga
VGA 成功接收了数据: hello vga
hello vga

进阶学习(3.9) Bridge Pattern 桥接模式相关推荐

  1. bridge pattern -- 桥接模式

    Bridge模式又称为Handle/Body模式. 在软件系统中,经常面临着"某些结构复杂的对象"的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一 ...

  2. 进阶学习(3.14) Strategy Pattern 策略模式

    1, 什么是策略模式 1.1  未达到预期目的的各种应对方案 1.2  程序代码中的每一个分支都可以称之为策略, 而策略模式,则是将行为划分到具体类, 使用类对象区分行为 2, 优缺点 2.1  减少 ...

  3. 进阶学习(3.13) Proxy Pattern 代理模式

    1, 代理模式, 这个地方的代理不是指JDK 动态代理 2, 代理模式和策略模式很像, 要注意区分, 区分的特征就是 2.1) 装饰者可以对任何的装饰抽象实例进行装饰, https://blog.cs ...

  4. 进阶学习(3.11) Facade Pattern 门面模式

    1, 什么叫门面模式, 也称之为接待员模式 1.1 我更愿意称之为阿拉丁模式, 阿拉丁灯神, 你想什么, 它就直接给你实现了, 你别管中间有多少困难, 他就直接给你实现了 1.2 好下面介绍门面模式, ...

  5. 进阶学习(3.8) Component Pattern 组合模式

    1, 什么是组合模式 一句话概括, 复杂的实体类, 一个对象里面包含多个对象, 就是一种组合, 完善对象的数据多样性, 其实大部分的设计模式, 我们再日常编程中都会使用, 有些可能使用了完整的思想, ...

  6. 进阶学习(3.6) Prototype Pattern 原型模式

    1, 什么是原型模式 1.1  通过浅拷贝(Cloneable)或者深拷贝(二进制流), 实现对一个复杂对象的刻复, 减少从零生成对象时消耗的性能 2,有什么业务场景 2.1  数据缓存, 查询数据库 ...

  7. 进阶学习(3.4) Builder Pattern 建造者模式

    1, 解决了什么 1.1 按照步骤拆分复杂对象的创建 1.2 能快速查找到是哪个步骤出了问题 1.2 更换蓝图就可以生产不同的具象对象 2, 参与者 需求者(Builder),             ...

  8. java/android 设计模式学习笔记(8)---桥接模式

    这篇博客我们来介绍一下桥接模式(Bridge Pattern),它也是结构型设计模式之一.桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯或者使用,桥接模式的作用就是为被分离了的抽象部分 ...

  9. 进阶学习(3.12) Operand Pattern 装饰器模式

    1, 什么是装饰器 1.1  装饰针对的是某一对象, 它不会改变事物的本质,  比如一个人买了一顶帽子, 它本质还是一个人 1.2  比如一个Date 对象, 它本质还是一个Object, 这个太抽象 ...

最新文章

  1. key mysql_mysql中key 、primary key 、unique key 与index区别
  2. 推荐 | 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞...
  3. 略读《大教堂与市集》
  4. sharepoint安装心得_过程
  5. 原码加减交替法什么时候结束_2021考研初试结束,成绩什么时候公布?
  6. postgresql中装gis插件_使用PostGIS_高级扩展插件使用_开发进阶_云原生数仓 AnalyticDB PostgreSQL - 阿里云...
  7. Windows内核API HOOK 之 Inline Hook
  8. python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...
  9. 11.策略模式(Strategy Pattern)
  10. keepalived+nginx双机热备+负载均衡
  11. matlab 矩阵转置
  12. Ubuntu 16.04使用阿里云邮箱命令行发送邮件配置
  13. matlab堆积式玫瑰图,用SAS实现堆积式南丁格尔玫瑰图Nightingale Rose Diagram (上)...
  14. html有序列表标签圆点,什么是无序列表、有序列表、定义列表?html列表标签学习笔记...
  15. 如何设计SEO关键字分析统计表
  16. 25种让你精力充沛的方法
  17. python代替云打码的超级鹰验证码识别第三方工具使用分享
  18. 微信自定义分享操作步骤
  19. Hadoop配置lzo压缩
  20. Git之一次Push的回滚之旅

热门文章

  1. 工信部明确公共互联网网络安全突发事件分级预警、应急
  2. vs调用matlab复杂,关于VS调用matlab的问题,求教大神
  3. @Autowired注解与@resource注解的区别(十分详细)
  4. MySql修改最大连接数的两种方式
  5. linux 进程数量限制,LINUX下每进程限制线程数量
  6. sed的基本用法和高级用法
  7. setsockopt
  8. ubuntu安装软件依赖
  9. pads铺铜不能开启drp_PowerPCB (PADS )常见问题全集-泪滴-规则设定
  10. winform 在panel怎么实现锚点定位_高德网络定位之“移动WiFi识别”