android开发-mvp模式理解
看之前,先忘掉所有,一步步看就行了。 最后会有一个原型demo,当然是转的了。看完文章,再看demo,然后再回头看文章就很好理解了,最好自己写一遍。
1.mvp开发模式可以理解为页面接口编程,每一层的骨架都是先通过建立接口,定义每层的必要方法,再实现方法完成的。
2.在mvp开发模式中,把每个模块代码分为三个层,View,presenter,model层。
3.view层从字面意义上理解,就是视图层,在安卓的mvp开发模式中,把activity,fragment,等 一些界面显示看作是视图层,在这些视力层中,只做一些视图变换操作,不对数据,逻辑进行操作。
3.1.建立接口:通过原形设置上,根据布局界面会有哪些改变,来编写对应的接口方法。
3.2.实现接口,在对应的接口方法中,完成视图变换操作。
3.3.仅view层对视图进行操作。初始化presenter层接口实现类对象,并把view层接口实现类的对象发送过去,以便presenter层对view层进行操作。
4.presenter层,控制层,在presenter层中,持有view,model层的接口实现类的对象,是通过这两个层实现类对象对分别对这两个层进行操作。
4.1.建立接口:需要创建两个接口
4.1.1:接口1.根据view层要实现的功能,编写出相应的对接口方法,
4.1.2:接口2.根据model层要回调回来的数据,编写对应的回调接口,与方法。
4.2.实现接口1,2,在对应的方法中,通过view层实现类的对象对view层进行操作,通过model层实现类的回调方法,得到业务数据
4.3.通过以上两部,完成view层与model层的解耦与控制。
5.model层,是对数据进行请求,操作的层,处理完后,可以把数据通过回调的方式先回调给presenter层,presenter层再通过持有的view层的接口实现类的对象中的一些方法,对view层进行操作。
5.1.建立接口,通过对业务数据需求建立接口方法。
5.2.实现接口,在实现类方法中完成对业务数据的逻辑操作,然后通过presenter的接口回调方法把数据传递给presenter层。
5.3.本层只操作数据,不对视图进行任务操作。
Mvp Demo:一个粟子.
收藏的比较好的mvp博客:一篇足矣。
android开发-mvp模式理解的更多相关文章
- Android开发MVP模式解析
http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html 在开发Android应用时,相信很多同学遇到和我一样的情况,虽然 ...
- Android开发 MVP模式的规范记录(个人总结)
前言 首先,这篇文章不在讲解什么是mvp模式,如果需要请自行搜索mvp模式文章了解.这个文章里我只记录mvp模式的创建和mvp各自层的界限.另外这个博客属于个人使用mvp模式后一些经验总结与记录.并不 ...
- ym——Android开发MVP模式(攻克了View和Model的耦合)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 什么是MVP呢?它又和我们经常听到的MVC有什么关系了以及差别呢? MVP 是从经典的 ...
- android的MVP模式
MVP简介 相信大家对MVC都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,那么类似的MVP所对应的意义:M-Model-模型. ...
- 说说Android的MVP模式
http://toughcoder.NET/blog/2015/11/29/understanding-Android-mvp-pattern/ 安卓应用开发是一个看似容易,实则很难的一门苦活儿.上手 ...
- android中MVP模式(一) - 清风明月的专栏 - CSDN博客
presenter 主持人.主导器 ====== 1. 明确需求,界面如下:可存,可根据id读取数据. 包结构图 2. 建立bean public class UserBean { private S ...
- Android中MVP模式与MVC模式比較(含演示样例)
原文链接 http://sparkyuan.me/ 转载请注明出处 MVP 介绍 MVP模式(Model-View-Presenter)是MVC模式的一个衍生. 主要目的是为了解耦,使项目易于维护. ...
- Android之MVP模式实现登录和网络数据加载
MVP简介 相信大家对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的 ...
- (未完成)【Android】MVP模式初见(一)
最近在阅读郭霖大神的公众号时,分类中架构引起了我的注意. 虽然是个人开发(水平很菜的那种),但最终都要向企业正式项目开发靠近.因此接下来一段时间,主要学习一下MVP架构.Retrofit以及RxJav ...
随机推荐
- char.js
轻量级前端画图js框架 此文档包含了用Chart.js创建漂亮图表的所有知识. http://www.bootcss.com/p/chart.js/docs/ 中文文档
- C语言多文件编译
fun.c #include <stdio.h> int fun1(){ printf("The first function!\n"); return 0; } in ...
- 【oracle】 oracle学习笔记1--安装与登录
由于机器配置原因,加上也是自学,所以就没必要安装专业版的oracle,于是就安装的oracle xe版本 下载地址:http://www.oracle.com/technetwork/database ...
- Hexo+Github 高逼格个人博客搭建指南(准备篇)
git 下载并安装git 进入git下载页面,下载合适的版本,并安装.一路 Next ,到了 Select Components 界面,勾选 Git Bash Here 和 Git GUI Here. ...
- 读取中文目录(python)
前言:需要对某目录下的文件进行分类,目录是中文名字就会报错,偶尔会手动修改文件名字,不太方便 解决办法:使用unicode()对路径进行处理 举例: 未进行处理前,该目录下的文件中文名称也是乱码显示的 ...
- .frm,.myd,myi转换为.sql导入数据库
先说说这几种文件是干什么的: *.frm是描述了表的结构, *.myd保存了表的数据记录, *.myi则是表的索引. 其实一个.frm文件就是对应的数据库中的一个表,表示数据表的表结构. .MYD文件 ...
- 超级文件搜索器(SuperSearch)
写了个工具,各个分享渠道上传太难了,在这里分享给大家吧! 中文名称:超级文件搜索器 英文名称: SuperSearch 适用对象:硬盘里文件达到数万至数千万级的用户 运行环境:WindowXP,Wi ...
- jmeter 内存溢出解决方法
执行“评论新鲜事”200并发就内存溢出 解决方法: [caozijuan@test09 bin]$ vi jmeter JVM_ARGS="-Xms1024m -Xmx4096m" ...
- 转发 XHTML 和 DOCTYPE 切换(MSDN)
使用 Web 标准生成 ASP.NET 2.0 Web 站点 XHTML 和 DOCTYPE 切换 为 Web页指定 DOCTYPE 会影响浏览器呈现页的方式.Internet Explorer.Mo ...
- DEVEXPRESS控件使用技巧记录-GRIDCONTROL
1. 存在父子表的时候,只允许父表的一条记录展开,其他记录都收起 方法:Feature Browser -> Master-Detail -> behavior -> AllowOn ...