目录

前言

一、了解桥梁模式

1.桥梁模式的用意

2.桥梁模式的优点

3.桥梁模式在Java中的使用

二、桥梁模式的例子(飞机信息系统)

抽象类代码Airplane

修正抽象类代码

实现类代码

具体实现类代码

测试程序

运行结果

总结


前言

桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者独立的变化”。


一、了解桥梁模式

1.桥梁模式的用意

桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者独立的变化”。这句话很短,这句话有三个关键词,也就是抽象化、实现化和脱耦。理解这三个词所代表的概念是理解桥梁模式用意的关键。

  • 从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征,就是抽象化。
  • 抽象化给出的具体实现,就是实现化。一个类的实例就是这个类的实例化,一个具体子类就是它的抽象超类的实例化。
  • 两个实体的行为的有某种强关联。将它们的强关联去掉,就是耦合的脱耦。在这里,脱耦是指将抽象化和实例化之间的耦合解脱开,或者是将它们之间的强关联改成弱关联。

2.桥梁模式的优点

  • 分离抽象部分和实现部分
    桥梁模式分离了抽象部分和实现部分,从而极大的提高了系统的灵活性。让抽象部分和实现部分独立出来,分别定义接口,这有助于对系统进行分层,从而产生更好的结构化的系统。
  • 更好的扩展性
    桥梁模式使得抽象部分和实现部分可以分别独立的扩展,而不会相互影响,从而大大提高了系统的可扩展性

3.桥梁模式在Java中的使用

桥梁模式在Java应用中一个非常典型的例子就是JDBC驱动器。JDBC为所有的关系型数据库提供一个通用的界面。一个应用系统动态的选择一个合适的驱动器,然后通过驱动器向数据库引擎发出指令。这个过程就是将抽象角色的行为委派给实现角色的过程。

JDBC这种架构,把抽象部分和具体实现部分分离开来,从而使得抽象部分和具体实现部分都可以独立的扩展。对于应用程序而言,之遥选用不同的驱动,就可以让程序操作不同的数据库,而无需更改应用程序,从而实现在不同的数据库上移植;对于驱动程序而言,为数据库实现不同的驱动程序,并不会影响应用程序。

二、桥梁模式的例子(飞机信息系统)

首先Airplane扮演抽象化角色,它声明出所有修正抽象化角色所需的接口

抽象类代码Airplane(飞机)

public abstract class  Airplane {public abstract void fly();AirplaneMaker airplaneMaker;
}

实现类代码

AirplaneMaker

abstract public class  AirplaneMaker{abstract public void produce();
}

修正抽象类代码

空客机 Airbus

public class Airbus extends AirplaneMaker {public void produce(){System.out.println("制造商:Airbus!");}
}

波音Boeing

public class  Boeing extends AirplaneMaker{public void produce(){System.out.println("制造商:Boeing!");}
}

麦道MD

public class MD extends AirplaneMaker{public void produce(){System.out.println("制造商:MD!");}
}

具体实现类代码

货机 CargoPlane

public class  CargoPlane extends Airplane{public void fly(){System.out.println("飞机类型:载货飞机!");}
}

客机 PassengerPlane

public class  PassengerPlane extends Airplane {public void fly(){System.out.println("飞机类型:载客飞机!");}
}

测试程序

public class Client {public static void  main(String[] args) {// TODO Auto-generated method stubAirplaneMaker mk=new Airbus();AirplaneMaker boe=new Boeing();AirplaneMaker md=new MD();Airplane lx=new CargoPlane();Airplane lx1=new PassengerPlane();mk.produce();boe.produce();md.produce();lx.fly();lx1.fly();}
}

运行结果

桥梁模式练习:飞机信息系统(JAVA练习项目IDEA)相关推荐

  1. Java毕设项目信管专业毕业生就业管理信息系统计算机(附源码+系统+数据库+LW)

    Java毕设项目信管专业毕业生就业管理信息系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm ...

  2. Java毕设项目薪酬福利管理信息系统计算机(附源码+系统+数据库+LW)

    Java毕设项目薪酬福利管理信息系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ ...

  3. JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)

    JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...

  4. JAVA毕设项目校园便利店信息系统开发(java+VUE+Mybatis+Maven+Mysql)

    JAVA毕设项目校园便利店信息系统开发(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX( ...

  5. 《JAVA与模式》之桥梁模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述桥梁(Bridge)模式的: 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式. ...

  6. Java精品项目系统源码第89期慢病报销管理信息系统

    Java精品项目系统源码第89期慢病报销管理信息系统 大家好,小辰今天给大家介绍一个基于Dao + Servlert + Jsp实现的慢病报销管理信息系统,演示视频文章末尾公众号对号查询观看即可 文章 ...

  7. java设计模式-桥梁模式

    桥梁模式 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是"将抽象化(Abstraction)与实现化(Imple ...

  8. 设计模式 - 结构型设计模式 - 桥梁模式(Java)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 理解桥梁模式,其实就是理解代码抽象和解耦. 我们首先 ...

  9. Java设计模式—桥梁模式

    (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/52490611冷血之心的博客) 目录 桥梁模式(桥接模式) 定义: ...

最新文章

  1. 推荐 33 个 IDEA 最牛配置,写代码太爽了!
  2. 11.8. DOMDocument
  3. Overload Overwrite Override
  4. DC-DC电源输出纹波测量的方法
  5. SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案
  6. 制作已编译的html帮助文件
  7. linux 编程头文件搜索规则
  8. MySQL 5.7新特性
  9. 无法打开登录所请求的数据库 sa。登录失败。 用户 sa 登录失败。
  10. 论MySQL的监控和调优
  11. 计算机机房需求调查表,机房建设需求调查表.doc
  12. 微软:2022 年开始,Win10 PC 设备才能免费升级 Win11
  13. 高仓健电影《海峡》观后感
  14. 非常有用的150个生活小常识
  15. 从零开始安装Gentoo
  16. 力扣刷题 DAY_70 回溯
  17. 工具篇:这可能是全 GitHub 最牛逼的抢票神器!
  18. Hive远程连接设置用户名和密码
  19. 单片机用途有哪些?学会了单片机能做什么工作?
  20. HEOI2013 ALO

热门文章

  1. 千年虫病毒是不是计算机病毒,求助,千年虫是病毒吗?
  2. PLC实验-四传送带的模拟
  3. java/php/net/python智能手机参数分析平台设计
  4. 数据库系统的组成与结构
  5. 引导区坏 计算机无法启动,windows7旗舰版系统下注册表损坏导致无法引导启动怎么解决...
  6. ks 怎么抓salt值?api,did?
  7. NEERC 2014, Eastern subregional contest(汇总)
  8. 【算法思考】路标插入间隔问题
  9. 此网络中的另一台计算机的ip相同,同一Wi-Fi网络上的两台计算机具有相同的IP地址吗?...
  10. 天津滨海服务外包产业园年底投入使用