列举一下比较流行的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

Android 框架MVP相关推荐

  1. Android框架式编程之MVP架构

    MVP是Google官方发布的Android开发相关的架构知识.本文要讲解的是一种最基本的MVP的实现方式,它使用手动的依赖注入来提供具有本地和远程数据源的存储库.异步任务处理回调. 基本的MVP示例 ...

  2. android项目集成okgo,Android中MVP+RXJAVA+OKGO框架

    [实例简介] Android中MVP+RXJAVA+OKGO框架 Glide的封装 沉浸式状态栏 butterknife 和recyclerview的使用 [实例截图] [核心代码] 882096ee ...

  3. android搭建网络框架,Android 搭建MVP+Retrofit+RxJava网络请求框架(三)

    上一篇中主要是将mvp+rxjava+retrofit进行了结合,本篇主要是对mvp框架的优化:建议先去看上一篇:Android 搭建MVP+Retrofit+RxJava网络请求框架(二) 针对vi ...

  4. 从零开始搭建Android框架系列

    原文链接:http://www.jianshu.com/nb/3767449 开篇介绍和工程目录结构[从零开始搭建android框架系列(1)] 不容错过,最全的安卓架构合集[从零开始搭建androi ...

  5. [Android]使用MVP解决技术债务(翻译)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5892671.html 使用MVP解决技术债务 原文:https ...

  6. java mvp模式_什么是mvp开发模式?(下面就对Android中MVP做一些阐述)

    MVP作为一种MVC的演化版本在Android开发中受到了越来越多的关注.值得注意的是,MVP不像JavaEE有着SSH这三个成熟框架支持推动着,所以在运用MVP时一定要做好自己的理解,并且尽量预知自 ...

  7. Android框架排行榜,上百项资源汇总不容错过

    1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...

  8. Android之MVP模式

    今天来看看Android的MVP模式,使用框架开发,开发速度以及代码的目录结构会别有一番风格. Google的demo:https://github.com/googlesamples/android ...

  9. Android框架排行榜

    Android框架排行榜 1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的st ...

  10. 60个实用Android框架排行榜

    1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...

最新文章

  1. 当javaScript从入门到提高前需要注意的细节:函数部分
  2. iOS代码编程规范 根据项目经验汇总
  3. golang中的json
  4. 云计算——让学习更轻松
  5. 查询正在运行的ORACLE进程
  6. 互联网晚报 | 2月21日 星期一 | 北京冬奥会闭幕;天猫将新增菜鸟驿站送货上门服务;上汽奥迪首款电动车型开启预售...
  7. IPV6 Socket编程
  8. 谷歌开源Allstar 项目,保护GitHub 仓库安全
  9. lucas+卡特兰数
  10. 网络安全--通过握手包破解WiFi(详细教程)
  11. 【DSP】TMS320C64x系列--SPRU871参考手册--中断控制器部分
  12. 【elasticsearch】——用ILM策略自动完成冷热数据分离
  13. Java并发相关知识(多线程、锁、容器、工具)
  14. 苹果XR设备多次“跳票” XR行业的未来将如何
  15. 湖南大学头歌期中模拟试卷
  16. 三种梯度下降算法的比较和几种优化算法
  17. 二论骇客文化,个人英雄主义的终结,团队精神登上舞台
  18. ABBYY FineReader Pro for Mac有哪些特性(下)
  19. 实话实说 —— 心理模型vs实现模型
  20. BeautifulSoup详解

热门文章

  1. 【男保姆式】教你打开第一个微信小程序
  2. 100923G-Por Costel and the Orchard
  3. Javascript中的作用域,作用域链
  4. 走,上高架,看看Momenta“飞轮式L4”的“微操”技巧
  5. dns配置异常怎么修复_dns异常怎么修复【详细介绍】
  6. Bugku - 秋名山老司机
  7. 第三章 分布式扩展(一)
  8. IT“茫一代”转型记:创业维艰 苦乐皆有
  9. TVP大佬组队,吐槽鹅厂数据库?!
  10. 【转】PM、RD、QA、OP英文缩写