列举一下比较流行的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层来做,下面两张图能看出区别
Android 框架MVP_第1张图片
Android 框架MVP_第2张图片
可以看到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. 使用AIDL(Android接口描述语言)设计和使用远程接口
  2. 介绍自己的一个Android插桩热修复框架项目QuickPatch
  3. Android 音频框架概述(一)之 AudioTrack
  4. Android弹幕框架 黑暗火焰使
  5. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得
  6. Android:Parcelable接口

随机推荐

  1. android 点亮屏幕和屏幕解锁
  2. Android开源项目源代码分享
  3. Android自启动应用添加和限制
  4. android 输入法的打开和关闭
  5. Android(安卓)Activity
  6. Android 9.0 开关机动画流程分析
  7. 降低android版本
  8. 2011.07.07——— android QuickContactB
  9. 在Android C/C++层添加LOG调试(LOGI\LOGD
  10. Android 获取Gmail邮箱地址方法