如果你是一个Android程序员,那么你一定对适配器模式情有独钟。如果你还不知道 适配器模式为何物,你还陶醉在自己对AdapterView子类运用的有多熟的暗中自喜中,希望这篇文章能给你当头棒喝。人们常常举电脑适配器的例子作为 适配器模式的具象提现。但我更愿意用USB来举这个例子。当然USB接口也是电脑适配器的一部分。我们知道,不论是什么设备要连接上电脑,其实一根USB 连接线就够了。(如果你非要跟我深究什么打印机什么接口无法USB也没办法)。那么USB连接线就充当了适配器的效果。适配器的存在就是为了对接两个不同 的接口。那么什么叫做对接两个不同的接口呢?就跟现实里的一样。usb和设备的接口采用的是不同的标准,接口自然不一样。对接两个不同的接口的本质目的就 是让你的接口完成另外一个接口所完成的工作。适配器解释成翻译是再好不过的例子了。一个美国人和一个中国人。中间加一个翻译。美国人要和中国人通讯,传递 数据给翻译,翻译将数据再传递给中国人。中国人要和美国人通讯,传递数据给翻译,再由翻译传递给美国人。如果说美国人只和美国人说话的话,那么我们可以将 这时候的翻译看成美国人对象,而跟中国人说话的时候,我们可以将它看成一个中国人对象。适配器模式就是这样,完成两个不同接口的数据传递,或者说功能转 换。
在Android里面,Adapter模式被设计的淋漓尽致。尤其在 AdapterView的设计中,MVC的结构在Adapter的功能成为最耀眼的设计之一。数据和视图本身就是两个完全独立的系统,自然拥有两个完全不 同的系统接口。通过适配器能有效的将这两个接口拼接在一起。我们再次回到三国杀这款游戏。
我们知道,对于同一个用户来说,在不同的模式下是有着不同的样式展现,在等待模式下,你的用户在视图上的呈现可能是这个样子的:
而在游戏进行模式下,你的用户展现形式可能是这样的:
没错~这换一种说法就是MVC,但是我们如果用适配器的观点来看的话,我们定义一下英雄这个数据结构:
class Hero {
String name;
List <Image> images;//魔法列表
}
在等待模式视图下我们使用视图1
class View1 ;
战斗模式下我们使用视图2
class View2
View1和View2是完全不同的接口,而数据模型Hero所有的接口一定不会跟View相同,自然会使用适配器。这样数据就和视图解耦,当你要使用新的视图的时候,只需要定义新的适配器就可以。
--非子墨
相关推荐
很好的Ip转换刷网站东东 真的很好用 我一直用啊 你们也一起用吧
家里和公司轻松更换IP地址,不用重复设置!
ip自动变换 适合 各种上网用户 可以用来来做网赚
不论采用何种方式的拨号上网,均可使用本软件自动切换IP,本软件可用来刷网站的IP流量、IP切换工具来使用,本软件具备以下功能: 1)自动拨号器:自动拨号上网,断线自动重拨,支持ADSL以及路由器等标准拨号网络;...
柳子墨 飞机大战.sb3
子墨IP变换软件 V1.0.............
CPRI帧格式详解 --子墨祭
北京东亚荔景园项目企划提案报告 --子墨.pptx
子墨支付V7.0(安装后查看使用说明) V7.0更新内容 1.更新商户登录注册模版 2.更换商户中心模版 V6.66更新内容 1.修复登陆记录ip不显示位置bug 2.修复客户反应的已知bug V6.45更新内容 1.更加完善了3号模板 ...
ZimoLoveShuang.github.io:子墨的博客
这是一款精巧的ip转换工具,可以实现在短时间内单个ip使用较长时间
点心省电是北京风灵创景科技有限公司(点心os)开发的点心系列软件,和电池监测器Battery Monitor Widget Pro类似,拥有一键优化、预设省电模式、自动校准的时间预估、耗电指数查看和状态栏显示功能,总的来说,点心...
系统功能列表里主要包括: 1.账号管理,在这里管理员可以修改个人信息,包括密码和个人资料等等。 2.用户注册管理部分是对该网站的申请注册的用户进行验证通过,管理员可以对所有用户进行删除修改和审核。 ...
第一个在嵌式培训机构写的小项目,拿出来和大家分享下,互相学习。0.0
非常实用,作为摘要指导,对于要写论文发文章的同志来说会节省不少时间的,大家努力!
子墨 轻松管理问题的 git 工具 如何使用 将所有文件复制到包含所有 depos 的主文件夹 启动问题 ./zimo start num_issue main_depo_issu depo1 depo2 ... 将depo添加到问题中 ./zimo add num_issue main_depo_issu ...
(限于文件1.3G大小,分享为云盘下载地址,请自行下载)本书基于Spark2.2.0版本,以Spark商业案例实战和Spark在生产环境下几乎所有类型的性能调优为核心,以Spark内核解密为基石,分为上篇、中篇、下篇,对企业生产...
(长途汽车数据由广大网友和各汽车站提供和更新)示范站点:1、交通信息在线 http://www.jt160.com/demo/2、子墨网 http://www.zimow.com/demo/二、 长途汽车查询API适合哪些网站使用? 长途汽车查询API可以适合任何...
(列车数据从铁道部官方网站获取,保证是最新、最准确的数据)示范站点:1、交通信息在线 http://www.jt160.com/demo_lc/2、子墨网 http://www.zimow.com/demo_lc/二、 列车时刻查询API适合哪些网站使用? 列车时刻...