一、桥接模式(Bridge)

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:

实现代码:

先定义接口:

  1. public interface Sourceable {
  2. public void method();
  3. }

分别定义两个实现类:

  1. public class SourceSub1 implements Sourceable {
  2. @Override
  3. public void method() {
  4. System.out.println("this is the first sub!");
  5. }
  6. }
  1. public class SourceSub2 implements Sourceable {
  2. @Override
  3. public void method() {
  4. System.out.println("this is the second sub!");
  5. }
  6. }

定义一个桥,持有Sourceable的一个实例:

  1. public abstract class Bridge {
  2. private Sourceable source;
  3. public void method(){
  4. source.method();
  5. }
  6. public Sourceable getSource() {
  7. return source;
  8. }
  9. public void setSource(Sourceable source) {
  10. this.source = source;
  11. }
  12. }
  1. public class MyBridge extends Bridge {
  2. public void method(){
  3. getSource().method();
  4. }
  5. }

测试类:

  1. public class BridgeTest {
  2. public static void main(String[] args) {
  3. Bridge bridge = new MyBridge();
  4. /*调用第一个对象*/
  5. Sourceable source1 = new SourceSub1();
  6. bridge.setSource(source1);
  7. bridge.method();
  8. /*调用第二个对象*/
  9. Sourceable source2 = new SourceSub2();
  10. bridge.setSource(source2);
  11. bridge.method();
  12. }
  13. }

output:

this is the first sub!
this is the second sub!

这样,就通过对Bridge类的调用,实现了对接口Sourceable的实现类SourceSub1和SourceSub2的调用。接下来我再画个图,大家就应该明白了,因为这个图是我们JDBC连接的原理,有数据库学习基础的,一结合就都懂了。

来源 https://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html

转载于:https://www.cnblogs.com/wuxinyiwu/p/8124859.html

Java二十三设计模式之-----桥接模式相关推荐

  1. Java二十三设计模式之-----原型模式

    一.原型模式(Prototype) 原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制.克隆,产生一个和原对象类似的新对象.本小结会通 ...

  2. Java二十三设计模式之------工厂方法模式

    一.工厂方法模式(Factory Method) 工厂方法模式有三种 1.普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短 ...

  3. Java二十三设计模式之------迭代子模式

    一.迭代子模式(Iterator) 顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松.这句话包含两层意思:一是需要遍历的对象,即聚 ...

  4. java桥接和装饰_设计模式:桥接模式和装饰模式

    原标题:设计模式:桥接模式和装饰模式 一.桥接模式简介 1.基础描述 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是&qu ...

  5. java 设计模式之桥接模式,策略模式

    java 设计模式之桥接模式,策略模式 1.引出设计模式 相信大家都玩过王者荣耀这款游戏.我们知道现在大概有九十多个英雄且各自技能及背景故事.台词.被动都不一样而且还带着召唤师技能比如实现,惩戒,弱化 ...

  6. 云计算设计模式(二十三)——Throttling节流模式

    云计算设计模式(二十三)--Throttling节流模式 控制由应用程序使用,一个单独的租户或整个服务的一个实例的资源的消耗.这样的模式能够同意系统继续执行并满足服务水平协议.即使当添加需求的资源放置 ...

  7. java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载

    我写的程序员面试系列文章 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Jav ...

  8. Java二十三种设计模式 之代理(proxy)

    Java二十三种设计模式 之代理(proxy) 今天我们学习一下静态代理和动态代理 我们来看代码(写一个坦克运行了多少时间): 第一种方法: public calss Tank implements ...

  9. 设计模式之桥接模式(Java语言描述)

    桥接模式定义 將抽象部分与它的具体实现部分分离,使它们都可以独立地变化.它是一种对象结构型模式,又称为柄体模式或接口模式. Decouple an abstraction from its imple ...

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

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

最新文章

  1. Spring Batch_ItemReaders and ItemWriters
  2. 交换基本数据类型的方法swap,并影响到主方法
  3. 区块链技术之Fabric逻辑架构详解
  4. Intellij Idea搭建Spark开发环境
  5. 程序包管理器控制台 Add-Migration 用法
  6. Andrew Ng 如何重拾梦想
  7. Anaconda, Spyder更新导致Spyder环境奔溃
  8. 软件图形用户界面设计
  9. GitHub标星90K,这份持续霸榜的Leetcode刷题手册到底有多强?
  10. iMX6UL配置MCP2515模块(SPI转CAN)——基于迅为iTOP-iMX6UL开发板
  11. 应该来说没有什么太大的关系。因为计算精度既取决于你的级数的项
  12. 《云计算核心技术剖析》迷你书连载三 – 云计算的商业模式
  13. 微信群管理工具哪个好?最安全的微信群管理工具推荐!
  14. 微信公众号菜单html5,Vue.js 实现微信公众号菜单编辑器功能(一)
  15. 产品经理不再纸上谈兵——雾里看花的用户画像
  16. java vpa_使用VPA快速洞悉Java应用性能瓶颈
  17. 用计算机进行论文检索应用,计算机检索论文摘要怎么写 计算机检索论文摘要范文参考...
  18. 企业名称登记管理规定
  19. 组合数学——Nim取子游戏 太有趣了
  20. .NET Framework 4.6.2发布

热门文章

  1. Atitit 代理CGLIB 动态代理 AspectJ静态代理区别
  2. Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??
  3. atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
  4. 网页图片显示分辨率与实际分辨率不一样
  5. 五种开源API网关实现组件对比
  6. 高频交易鼻祖竟是靠「金发女郎」取得了400%的年回报
  7. 博格和他的先锋集团创业史(3): 共同基金的先驱者
  8. 聪明贝塔(Smart Beta)
  9. 钉钉总裁不穷:周末最烦写周报还有被人钉
  10. 【预测模型】基于matlab GUI BP神经网络+最小二乘法预测模型【含Matlab源码 208期】