如果你是一个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变换软件v1.0是一款专为用户设计的便捷IP地址切换工具,它能够帮助用户在家庭和工作场所之间快速、轻松地更改计算机的IP地址,避免了手动配置的繁琐过程。这款软件适用于那些需要频繁更换网络环境或者希望保护...
很好的Ip转换刷网站东东 真的很好用 我一直用啊 你们也一起用吧
ip自动变换 适合 各种上网用户 可以用来来做网赚
不论采用何种方式的拨号上网,均可使用本软件自动切换IP,本软件可用来刷网站的IP流量、IP切换工具来使用,本软件具备以下功能: 1)自动拨号器:自动拨号上网,断线自动重拨,支持ADSL以及路由器等标准拨号网络;...
柳子墨 飞机大战.sb3
子墨IP变换软件 V1.0.............
《子墨IP变换工具V2.0简体中文版》是一款专为用户设计的高效IP地址切换软件,尤其适用于那些需要频繁更改IP地址以实现多种网络功能或保护隐私的用户。这款工具以其简洁的界面和强大的功能,在同类产品中脱颖而出。 ...
子墨支付V7.0(安装后查看使用说明) V7.0更新内容 1.更新商户登录注册模版 2.更换商户中心模版 V6.66更新内容 1.修复登陆记录ip不显示位置bug 2.修复客户反应的已知bug V6.45更新内容 1.更加完善了3号模板 ...
【CPRI】(Common Public Radio Interface)帧格式详解 CPRI是一种专为射频单元(Radio Equipment Controller,REC)和射频单元(Radio Equipment,RE)之间通信设计的接口标准,它定义了从物理层(Layer 1)到数据...
【标题】"ZimoLoveShuang.github.io:子墨的博客" 暗示这是一个个人博客网站,由用户ZimoLoveShuang创建并托管在GitHub上。博客通常用于分享技术文章、个人见解或项目经验,因此我们可以期待这个博客中包含有关IT...
报告提到了北京市的城市空间发展战略,即“两轴、两带、多中心”模式,这为项目提供了发展机遇。通过在郊区建立适合50万人口居住和工作的新型城市,可以缓解市中心的人口压力。 4. **绿色住宅**: 报告强调了项目...
策略模式
在这个设计中,晁子墨同学主要负责了三个关键部分:生产者-消费者问题、内存管理和快速文件系统。 首先,生产者-消费者问题是多线程编程中的经典问题,用于模拟资源的生产和消耗过程。该问题的核心在于如何在多个...
系统功能列表里主要包括: 1.账号管理,在这里管理员可以修改个人信息,包括密码和个人资料等等。 2.用户注册管理部分是对该网站的申请注册的用户进行验证通过,管理员可以对所有用户进行删除修改和审核。 ...
5. 公共服务优化:大数据可以分析公众的需求和行为模式,帮助政府优化公共服务,如公共交通路线调整、医疗资源分配等。 在《大数据与城市规划》的习题中,可能涵盖了数据获取、预处理、存储、分析以及结果解释等...
在启动阶段,NTLDR将处理器从实模式切换到32位保护模式,接着读取BOOT.INI文件,显示启动菜单供用户选择。BOOT.INI文件中包含了操作系统的相关信息,用户可以通过控制面板或msconfig工具进行调整。例如,可以设置...
2024年第十届数维杯国际大学生数学建模挑战赛论文提交流程.pdf
6. **蒙皮问题**:描述中提到的“蒙皮我还没有搞定”,蒙皮是指将3D模型的几何面分配到相应的骨骼上,以实现骨骼对模型形变的控制。这在动画制作中非常重要,但可能需要特定的技术和技巧来完成。 7. **Bippy工具**...
作者还需要描述研究设计和方法论,准确地阐述所采用的方法和程序、主要的结果和发现,以及可以从这些数据和结果中得出的结论。同时,还要包括对进一步研究或应用/实践的任何可能启示。 为了达到IEEE期刊对摘要的...