继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java桥接模式实例解析

忽然笑
关注TA
已关注
手记 191
粉丝 64
获赞 275

上篇文章讲解了适配器模式相关知识与使用实例,本篇文章介绍桥接模式,这两种模式都属于结构型设计模式,经常在软件架构设计时联合使用。因此紧接着上篇适配器模式来介绍桥接模式,展示两个设计模式联合使用的妙处。

1、适配器模式概述:

桥接模式(Bridge Pattern):将抽象部分与其实现部分分离,使它们可以独立地变化。它是一种对象结构型设计模式,又称为柄体(Handle and Body)模式或接口(Interface)模式《设计模式的艺术》

在软件系统中,如果某一部分功能存在2个变化的纬度,而这两个纬度可以相互分离,互不影响。因此便可以使用桥接模式,将两个变化的纬度进行抽象设计,两个抽象部分相关联,具体实现部分互相无任何关系。桥接模式符合很多设计原则,开闭、单一职责、依赖倒转等原则,因此学习桥接模式对于面向对象设计原则理解很有帮助。

桥接模式类图

1)Client(客户端):外部使用程序
2)Abstraction(抽象类):定义抽象类的接口,一般将最基础业务方法的一个纬度定义为抽象类,并在类中定义抽象方法;
3)Implementor(实现类接口):定义实现类的接口,与Abstraction不同的另外一个纬度的基类或者是接口;
4)RefinderAbstracion(扩充抽象类):抽象类的实现者,根据不同变化纬度对应不同类;
5)ConcreteImplementor(具体实现类):实现抽象类接口,完成不同实现;

2、桥接模式示例:

本实例为一个Android平台的视频播放器的一部分内容,该视频播放器的解码部分使用桥接模式实现。因为视频流的码率、分辨率不一样,而解码方式也分为硬解码、软解码方式,因此在设计该方案时使用桥接模式实现。
image.png
该实现方式扩展性很好,如果有新的解码器加入,原系统不需要做修改,只需要增加新的解码器即可。

优点:

1)面向接口编程,抽象与具体实现分离;
2)扩展性好,任意纬度扩展都不需要修改原有系统,符合开闭原则;

结束语

桥接模式的难点在于识别出系统中独立变化的多个纬度,这方面需要一定的技术积累才能做到。另外在使用桥接模式的时候,系统复杂度一定程度上会增加。

原文出处

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP