java设计模式分析之桥接模式、适配器模式

一个优秀的android开源框架中往往会体现出很多Java设计模式的影子,了解设计模式有助于理解开源框架中的程序设计之美接下来我会将自己整理的对一些设计模式的理解记录在这里

若您对我的分享感兴趣可以访问:java设计模式专栏

1、适配器模式(retrofit)
适配器模式的应用非常广泛,因为适配器是作为两个不兼容的接口之间的桥梁,什么意思呢?
例如:读卡器就是内存卡和笔记本之间的适配器,我们将内存卡插入读卡器再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡
因为有了读卡器使得原本不能协同工作的内存卡和笔记本可以协同工作
举例:
默认情况下AudioPlayer可以播放mp3格式的音频文件,但是如何播放Vic和mp4格式文件呢?
我们可以创建一个MediaAdapter,使用这个适配器可以传递所需的音频类型,不需要知道能播放所需格式音频的实际类


java设计模式分析之桥接模式、适配器模式_第1张图片


2、桥接模式:(JDBC)

参考:
https://www.cnblogs.com/V1haoge/p/6497919.html

http://blog.csdn.net/xiefangjin/article/details/51056411

描述:

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

从描述中我们可以抓取三个关键词:

抽象化、实现化、桥接

简单理解就是,就是两边的抽象化和实现化各自发展,但是为了始终能够协同工作,中间需要使用桥接接口来定义规范

关键点:

桥接接口规定的是实现化这一方的实现规则,抽象方会拥有这个桥接接口,调用桥接接口的方法,而真正执行方法的是实现方

举个栗子:

java数据库连接JDBC,调用者相当于是抽象方,JDBC相当于桥接接口,执行方就是各个数据库厂商根据JDBC的接口规则进行的功能实现

可能有些朋友会觉得和适配器模式比较相似,我们来具体分析一下:

和适配器的相同点:

都是让两个东西配合工作

和适配器的区别:

出发点不同
         1)适配器:改变已有的两个接口,让他们相容。

         2)桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。

        所以说,如果你拿到两个已有模块,想让他们协同工作,那么你使用的适配器。
        如果你还什么都没有,但是想分开实现,那么桥接是一个选择。

        桥接是先有桥,才有两端的东西
        适配是先有两边的东西,才有适配器

        桥接是在桥好了之后,两边的东西还可以变化


你可能感兴趣的:(JAVA,java设计模式)