最近在看设计模式,想从理论联系实际来分析分析。因为在Android开发中,ListView用的特别多,用ListView时不得不用Adapter,很明显,从名字上可以看出,这里用到了设计模式中的适配器模式,但是看了别人介绍的适配器模式好几遍,也没能彻底明白ListView这块与Adapter模式有啥明显的对应关系。我刚开始的理解是:ListView要用到Adapter,而Adapter是一抽象类,我们具体使用时,实现具体的Adapter就可以了,好像与Adapter没啥特别大的关系。
今天又研究了几个例子,然后好好想了一下,突然醒悟,ListView这块的确是非常典型的适配器模式。
我对适配器模式的理解:(举例说明)完成一个任务时,需要调用接口InterfaceA的两个函数来完成,一般情况下,我们实现接口就可以了,而此时有一个类ClassA,已经实现好了,它正好可以用来完成此任务,正好需求上就是要用到类ClassA的功能。实现这个需求我们有很多选择,比如修改类ClassA或者扩展InterfaceA,但是这样修改会破坏开闭原则。现在提出一个要求,就是不修改现有的任何代码。这时候适配器模式就派上用场了,两种方式:1.新增一个AdapterA类,实现InterfaceA,同时保持一个对ClassA类对象的引用。
2.新增一个AdapterA类,继承ClassA类,同时实现InterfaceA。
现在再联系一下ListView的Adapter。ListView就是一个任务,ClassA就相当于我们传给Adapter的List对象或者数组等等,所以Android在这里用到了第一种Adapter方式。
分享到:
相关推荐
Android自定义adapter的listview代码
android gridview adapter 实例 每个getview显示不同的数据
java中的适配器模式,Adapter设计模式(包装器)23种设计模式之一
android中ArrayAdapter SimpleAdapter BaseAdapter 的使用
生活中有很多Adapter的例子... Adapter模式应该是设计模式中一个轻量级的模式,实现起来也比较简单,有时候不经意中,你可能就已经实现了一个Adapter模式,只是自己没有发现而已。本文将通过一个范例介绍 Adapter模式。
主要介绍了Android设计模式之适配器(Adapter)模式,以源码解析的方式分析适配器模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android之Adapter用法总结
基于Eclipse开发平台,Android中使用ListView和三种适配器(ArrayAdaper,SimpleAdapter,BaseAdapter)实现数据的填充。
android recyclerview adapter 照片选择器 给recyclerview 添加adapter适置器进行照片选择,可以对recyclerview进行行数和张数的设置,也可以对已选择的照片进行增减。
设计模式1,FACADE模式,Adapter facade Adapter singleton proxy
设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式...
②设计模式之Adapter模式
Android ListView adapter不同布局,当需要用到ListView叠加嵌套时候可以考虑
Android_Adapter 讲解Android_Adapter 讲解Android_Adapter 讲解Android_Adapter 讲解Android_Adapter 讲解
这个是我写的一个自定义Adapter适配器,用来绑定数据到ListView上。我写的代码非常简单易懂
教程名称: 【动力节点】Java视频教程_Adapter设计模式本套Java视频教程详细讲解了适配器设计模式的用法。首先在Java视频中介绍了适配器模式的基本元素及其定义,然后先使用无适配器模式编程,再使用多功能适配器及...
Android listview与adapter操作和用法
该例中包含了常用的Adapter的使用,如baseadapter、simpleAdapter、SimlpeCursorAdapter和ArrayAdapter,例子写在一个工程中的。请注意切换清单文件中启动的Activity。
android开发Adapter详解,帮助你加深进一步的理解···