java桥接模式实例解析

作者: Tifkingsly | 来源:发表于2018-06-03 23:29 被阅读13次

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

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)扩展性好,任意纬度扩展都不需要修改原有系统,符合开闭原则;

结束语

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

相关文章

  • java桥接模式实例解析

    上篇文章讲解了适配器模式相关知识与使用实例,本篇文章介绍桥接模式,这两种模式都属于结构型设计模式,经常在软件架构设...

  • 结构型-Bridge

    桥接模式的原理解析 桥接模式,也叫作桥梁模式,英文是 Bridge Design Pattern。这个模式可以说是...

  • 设计模式(结构型)-- 桥接模式

    需掌握程度: 了解 (不常用,认识即可) 桥接模式的原理解析 桥接模式,也叫作桥梁模式,英文是 Bridge De...

  • Java设计模式<桥接模式>

    Java设计模式<桥接模式> 意图 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • java 桥接模式

    用于解决系统中多维度问题

  • Java桥接模式

    概念 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。...

  • 桥接模式-java

    概念: 桥接模式将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个...

  • Java 桥接模式

    一、定义 将抽象和实现分离,使他们可以独立变化,他是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维...

  • java/android 设计模式学习笔记(8)---桥接模式

    java/android 设计模式学习笔记(8)---桥接模式 【备注】只用于个人收藏

网友评论

    本文标题:java桥接模式实例解析

    本文链接:https://www.haomeiwen.com/subject/mdwjsftx.html