设计模式——适配器模式(Adapter)

Android中我们给ListView以及RecyclerView塞数据的时候经常会使用ArrayAdapter,BaseAdapter,RecyclerView.Adapter等各类Adapter,我们都知道他们是适配器,那么究竟适配器是什么呢?

#现实中最常见的适配器例子:

三头的插头要在两孔的插座上充电,需要一个适配器进行转接。

有人说买的时候直接买个三孔的插座不就行了么?
可家里还有电视、电脑、空调,后面还会买烤箱、投影仪,所以在插座确定的情况下又需要同时兼容很多未知电器。意思就是说,需要点都找我,我只支持2孔的插头,如果我们不合适,请找适配器帮忙把你们转为两孔的(跟我谈恋爱,如果不合适,请改变你自己,改变不了,找人帮你改变)。

#适配器模式所涉及的角色:

  • 目标(Target)角色:这就是所期待得到的接口。注意:由于这里讨论的是类适配器模式,因此目标不可以是类。

  • 源(Adapee)角色:现在需要适配的接口。

  • 适配器(Adaper)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。

这里两孔插座为目标(Target) ,三孔插头为源(Adapee),转换头就是适配器(Adapter)了。

其实适配器模式就是目标已然确定, 他对外贴出了张告示:他就掉用AA类的BB方法,现在来了个CC,他并没有BB方法,那么CC就借助于DD,在DD中实现了目标需要的BB方法。

CC与DD有几种配合方式:实现、组合、集成
这几种配合方式其实就是目前的集中适配器模式:类适配器模式、对象适配器模式、缺省适配模式。

#类适配器模式

这里写图片描述

#对象适配器模式

这里写图片描述

#具体代码讲解传送门

猜你喜欢

转载自blog.csdn.net/yuanyang5917/article/details/52399544