栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【设计模式--->结构型】叩心自问 :桥接设计模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【设计模式--->结构型】叩心自问 :桥接设计模式

叩心自问1:什么是桥接模式? 典型的桥接问题 代码示例(桥接模式解决手机问题): 桥接模式在JDBC的应用: 桥接模式的注意事项和细节


叩心自问1:什么是桥接模式?

sadasd桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。

sada d【注】:桥接模式属于 结构型模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。

sadasd原理图:
sadsdsdda
sadasdClient类:桥接模式的调用者

sadasd抽象类(Abstraction) :维护了 Implementor / 即它的实现ConcreteImplementorA…, 二者是聚合关系, Abstraction 充当桥接类
sadasdRefinedAbstraction:是Abstraction抽象类的子类

sadasdImplementor:行为实现的接口

sadasdConcreteImplementA/B:行为的具体实现类

sadasd【注】:从UML图我们可以发现,这里的抽象类和接口是聚合的关系。


典型的桥接问题

sadasd对于不同手机类型的不同品牌实现操作编程,如下:
sadasdsdsdsdsdsdsdsds
sadasd①传统方法对应的类图:

sadasd缺点:扩展性爆炸,如果再增加手机样式,或者手机品牌,那么代码的修改无疑是很麻烦的,并违反了单一原则。


代码示例(桥接模式解决手机问题):

sadasdUML图如下:
ssada
sadasdBrand接口代码:

sadasdBrand接口子类代码:
sadasd
sadasdPhone代码:

sadasdPhone子类实现:

sadasd测试及结果:


桥接模式在JDBC的应用:

sadasdJdbc 的 Driver接口,如果从桥接模式来看,Driver就是一个接口,下面可以有MySQL的Driver,Oracle的Driver,这些就可以当做实现接口类。
sada


桥接模式的注意事项和细节

sadasd1、实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于系统进行分层设计,从而产生更好的结构化系统。

sadasd2、对于系统的高层部分,只需要知道 抽象部分和实现部分的接口(抽象类) 就可以了,其它的部分由具体业务来完成。

sadasd3、桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本。

sadasd4、桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程。
sadasd5、桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性,即需要有这样的应用场景。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号