列举一下比较流行的3个框架MVC,MVP和MVVM,他们的全称是Model-View-Controller,Model-View-Presenter,Model-View-ViewModel

本文的意义

本文主要探讨一下MVP
转载请注明出处 ethan_xue博客

1.为什么开发需要这些框架?

本人理解是为了解耦,代码易于维护

2.回顾一下MVC

在探讨MVP之前,先回顾一下MVC在Android中的运用。

M层:javaBean,数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。
V层:XML布局,显示Model层的数据结果。
C层:在Android中,Activity可以认为是控制器
举个栗子就是V层输入一些字符串,C层Activity读取字符串,并向Model发送数据请求。
这里的Activity除了做Controller的事情,还需要做一些View的事,这样就显得比较臃肿,另外View和Model是相互可知的,也就有一定的耦合,这样的耦合可能在大项目里给开发和测试带来不小的维护成本。于是演化出了MVP和MVVM

3.MVP

Android中 MVP和MVC的Model几乎是一样的,Activity自Controller层变成了View层,原有的处理是Presenter层来做,下面两张图能看出区别


可以看到View和Model不再有直接的交互,意味着这里不再有耦合了

4.一般实现方法

Presenter是通过接口来和View, Model通信的
先定义三个interface接口,分别对应View, Model, Presenter, 分别实现一下,View层的可Activity实现。
然后Activity里加Presenter的引用,这样V和P就建立联系了,P通过V的接口来在Activity更新UI,P里可加Model的引用,这样M和V就分离开了。代码到处都有,这里就不举例了,具体可参考以下链接

做了一个小demo
http://download.csdn.net/detail/ethan_xue/9840416

参考

https://segmentfault.com/a/1190000003927200
http://www.jianshu.com/p/9a6845b26856
http://blog.csdn.net/boyupeng/article/details/46884823

更多相关文章

  1. Android操作HTTP实现与服务器通信
  2. Android(安卓)使用Parcelable序列化对象
  3. Android定制RadioButton样式三种实现方法
  4. Android快速实现发送邮件
  5. Android(安卓)ContentProvider、ContentResolver和ContentObserv
  6. Android(安卓)spinner控件的实现
  7. android下的MVP架构
  8. Android中利用GridView实现水平和垂直均有滚动条的表格效果
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. Android(安卓)notification点击跳转到Act
  2. Android中attrs.xml文件的使用详解
  3. Android(安卓)小说阅读护眼模式
  4. Android读写文件
  5. 【转】 Android上调用google map api v2
  6. Android(安卓)最火的快速开发框架Android
  7. Android(安卓)SDK Emulator: Compile Cya
  8. Android小问题解决办法记录
  9. Android(安卓)学习笔记 Contacts (一)Conte
  10. SoLoader,android动态加载so库