java设计模式之适配器模式设计模式之适配器模式
主要为大家详细介绍了java设计模式之适配器模式,介绍了什么是适配器模式,适配器模式的种类,感兴趣的小
伙伴们可以参考一下
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著
适配器模式在我们的开发中使用率极高,从代码中随处可见的Adapter就可以判断出来,从最早的ListView、GridView、到现
在最新的RecyclerView都需要使用Adapter,并且在开发中我们遇到的优化问题、出错概率较大的地方也基本都出自
Adapter。
适配器是将两个不兼容的火龙融合在一起,将不同的东西通过一种转换使得它们能够协作起来,例如,经常碰到要在两个没有
关系的类型之间进行交互,第一个解决方案是修改各自类的接口,但是如果没有源代码或者我们不愿意为了一个应用而修改各
自的接口,这种情况我们往往会使用一个Adapter,这个Adapter会将这两个接口进行兼容,在不修改原有代码的情况下满足需
求。
假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不用于旧厂商的接
口:
你不想改变现有的代码,解决这个问题(也不能改变厂商的代码),应该怎么做?你可以写一个类(适配器),将新厂商接口
转接成你所期望的接口,这个适配器工作起来就如同一个中间人,它将客户所发出的请求转换成厂商类能理解的请求。
适配器模式可分为两种:
对象适配器:对象适配器:充满着良好的OO设计原则,使用对象组合,可以应用在适配者是接口和它所有的子类,不能够重写适配器的方
法,因为没有继承关系,但是也能够“重新实现”适配者中方法,客户端和适配者完全不相干,只有适配器拥有适配者的引用。
类适配器:类适配器:使用继承的方式达到适配的工作,只能是适配者是接口,不能利用它子类的接口,当类适配器建立时,它就静态地
与适配者关联,适配者作为适配器的基类,所以适配器能够重写适配器中的方法,客户端代码对适配者中声明的代码是可见的
客户端代码对适配者中声明的代码是可见的。
定义:定义:
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一
起工作。
使用场景:使用场景:
1.系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容。
2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。
3.需要一个统一的输出接口,而输入端的类型不可预知。