桥接模式

Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展

像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。

下面还是以票务系统为例:

票务系统接口定义

1 public interface TicketsSystem {
2     void buyTicket();
3 }

接下来是两个实现类

汽车票

1 public class BusTickets implements TicketsSystem{

3     public void buyTicket() {
4         System.out.println("buy a busTickets!");        
5     }

7 }

火车票

1 public class TrainTickets implements TicketsSystem{

3     public void buyTicket() {
4         System.out.println("buy a trainTickets!");    
5     }

7 }

桥的抽象定义

 1 public abstract class TicketsBridge implements TicketsSystem {
 2     private TicketsSystem system;
 3 
 4     public TicketsSystem getSystem() {
 5         return system;
 6     }
 7 
 8     public void setSystem(TicketsSystem system) {
 9         this.system = system;
10     }
11 
12 }

桥的实例

 1 public class TicketsManager extends TicketsBridge{
 2     
 3     public TicketsManager(TicketsSystem system){
 4         setSystem(system);
 5     }
 6 
 7     @Override
 8     public void buyTicket() {
 9         getSystem().buyTicket();
10         
11     }
12 
13 }

测试:

 1 public class BridgeDemoTest {
 2     public static void main(String[] args) {
 3         TicketsManager manager;
 4         BusTickets bus = new BusTickets();
 5         manager = new TicketsManager(bus);
 6         manager.buyTicket();
 7         
 8         TrainTickets train = new TrainTickets();
 9         manager = new TicketsManager(train);
10         manager.buyTicket();
11     }
12 }

转载于:https://www.cnblogs.com/keyiei/p/3598240.html

常见的设计模式 ----- 桥接模式相关推荐

  1. 23种设计模式——桥接模式

    文章目录 23种设计模式--桥接模式 1.桥接模式概述 2.桥接模式结构 3.桥接模式的实现 4.桥接模式的注意事项和细节 23种设计模式--桥接模式 1.桥接模式概述 桥接模式介绍 桥接(Bridg ...

  2. Python设计模式-桥接模式

    Python设计模式-桥接模式 基于Python3.5.2,代码如下 #coding:utf-8class Shape():name = ""param = "" ...

  3. 【学习笔记】ABAP OOD设计模式 - 桥接模式

    ABAP OOD设计模式 - 桥接模式 整理转自-<SAP ABAP 面向对象程序设计(原则.模式及实践)> 桥接模式又称为桥梁模式,在程序开发中,采用不同的维度分解一系列对象,然后采用组 ...

  4. 跟着ZHONGHuan学习设计模式--桥接模式

    转载请注明出处! ! !http://blog.csdn.net/zhonghuan1992 全部配套代码均在github上:https://github.com/ZHONGHuanGit/Desig ...

  5. 2.设计模式-桥接模式

    文章目录 一.使用场景 二.实现方法 三.优势与劣势 四.经典案例 本文笔记来自于: 狂神的设计模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化.它是一种对象结构模型,又称为柄体( ...

  6. 设计模式--桥接模式(Bridge)

    设计模式–桥接模式(Bridge) 1.定义 桥接模式:将抽象部分与它的实现部分分离,使它们可以独立地变化. 2.实例 设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图 ...

  7. linkin大话设计模式--桥接模式

    linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...

  8. 设计模式——桥接模式实验报告

    目录 设计模式--桥接模式实验报告 一.实验题目 二.所用模式结构视图 三.本实例类图 四.实例实现代码 1.抽象消息类 2.普通消息类 3.加急消息类 4.特急消息类 5.实现发送消息的统一接口: ...

  9. 设计模式 -- 桥接模式(Bridge)

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: 初始桥接 ...

  10. Java设计模式-桥接模式 理论代码相结合

    继Java设计模式-装饰器模式后的桥接模式出来了,感兴趣的话,就来看一看吧. 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢 ...

最新文章

  1. Django之forms组件
  2. 预测人民币在2006年最终的收盘价
  3. GetLogicalDrives GetDriveType GetVolumeInformation和FindVolumeClose
  4. Linux知识点复习
  5. win7-64bit下基于VMware12.5安装rhel-server-6.3-i386
  6. 篇三:访问JSON静态文件
  7. ELK Stack 与 Elastic Stack 的异同点
  8. 剑指offer——15.二进制中1的个数
  9. LINUX编译opencv
  10. Java用itext工具根据模板生成PDF
  11. arm-linux-gcc stdio.h,arm-linux-gcc stdio.h no such file or directory错误
  12. elasticsearch: RequestError(400, ‘parse_exception‘, ‘unknown key [mapping] for create index‘)
  13. android onkeydown()简介
  14. SOI round0 题解
  15. 宝儿姐告诉我学习数据库这一篇就差不离了
  16. Y480安装联想一键恢复
  17. #青春有未来,我和华为云的故事#
  18. 「Python ​正则」使用专题总结
  19. 如何提取一个转录本的3'UTR区域的序列
  20. 智慧供热解决方案概述

热门文章

  1. SpringCloud-Config通过Java访问URL对敏感词加密解密
  2. 遍历目录中的所有文件和目录,并生成全路径
  3. 【问题解决方案】Markdown正文中慎用星号否则容易变斜体
  4. 判断是否是合法的IP地址
  5. NHibernate教程(14)--使用视图
  6. 【转】显卡:ATI和NVIDIA两大主流显卡比较
  7. [转]日常交际技巧经验总结100句
  8. ES6之let与const
  9. 当spark遇见hbase
  10. mac 常用的开发工具