`
danlov
  • 浏览: 28284 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对Android中Adapter设计模式的理解

 
阅读更多
       最近在看设计模式,想从理论联系实际来分析分析。因为在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方式。
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics