桥梁模式练习:飞机信息系统(JAVA练习项目IDEA)
目录
前言
一、了解桥梁模式
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)相关推荐
- Java毕设项目信管专业毕业生就业管理信息系统计算机(附源码+系统+数据库+LW)
Java毕设项目信管专业毕业生就业管理信息系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm ...
- Java毕设项目薪酬福利管理信息系统计算机(附源码+系统+数据库+LW)
Java毕设项目薪酬福利管理信息系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ ...
- JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
JAVA毕设项目飞机航班信息查询系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...
- JAVA毕设项目校园便利店信息系统开发(java+VUE+Mybatis+Maven+Mysql)
JAVA毕设项目校园便利店信息系统开发(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX( ...
- 《JAVA与模式》之桥梁模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述桥梁(Bridge)模式的: 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式. ...
- Java精品项目系统源码第89期慢病报销管理信息系统
Java精品项目系统源码第89期慢病报销管理信息系统 大家好,小辰今天给大家介绍一个基于Dao + Servlert + Jsp实现的慢病报销管理信息系统,演示视频文章末尾公众号对号查询观看即可 文章 ...
- java设计模式-桥梁模式
桥梁模式 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是"将抽象化(Abstraction)与实现化(Imple ...
- 设计模式 - 结构型设计模式 - 桥梁模式(Java)
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 理解桥梁模式,其实就是理解代码抽象和解耦. 我们首先 ...
- Java设计模式—桥梁模式
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_25827845/article/details/52490611冷血之心的博客) 目录 桥梁模式(桥接模式) 定义: ...
最新文章
- 推荐 33 个 IDEA 最牛配置,写代码太爽了!
- 11.8. DOMDocument
- Overload Overwrite Override
- DC-DC电源输出纹波测量的方法
- SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案
- 制作已编译的html帮助文件
- linux 编程头文件搜索规则
- MySQL 5.7新特性
- 无法打开登录所请求的数据库 sa。登录失败。 用户 sa 登录失败。
- 论MySQL的监控和调优
- 计算机机房需求调查表,机房建设需求调查表.doc
- 微软:2022 年开始,Win10 PC 设备才能免费升级 Win11
- 高仓健电影《海峡》观后感
- 非常有用的150个生活小常识
- 从零开始安装Gentoo
- 力扣刷题 DAY_70 回溯
- 工具篇:这可能是全 GitHub 最牛逼的抢票神器!
- Hive远程连接设置用户名和密码
- 单片机用途有哪些?学会了单片机能做什么工作?
- HEOI2013 ALO
热门文章
- 千年虫病毒是不是计算机病毒,求助,千年虫是病毒吗?
- PLC实验-四传送带的模拟
- java/php/net/python智能手机参数分析平台设计
- 数据库系统的组成与结构
- 引导区坏 计算机无法启动,windows7旗舰版系统下注册表损坏导致无法引导启动怎么解决...
- ks 怎么抓salt值?api,did?
- NEERC 2014, Eastern subregional contest(汇总)
- 【算法思考】路标插入间隔问题
- 此网络中的另一台计算机的ip相同,同一Wi-Fi网络上的两台计算机具有相同的IP地址吗?...
- 天津滨海服务外包产业园年底投入使用