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 ...
随机推荐
- SAP ERP和ORACLE ERP的区别是哪些?
SAP有非常细致深入的标准流程,在流程方面,只要是你想到的问题,SAP都会曾经遇到过并且给出过解决方案.实施SAP比较倾向于改变企业的业务流程来匹配SAP,实现标准化管理. oracle比较灵活,侧重 ...
- 书__Oracle
1.高可用性 1.1.ORACLE数据高可用之路 1.2.Oracle数据库进阶-高可用性.性能优化和备份恢复 2. 3. 4. 5.
- indexOf 用法
一.字符串的IndexOf()方法: (括号里的为子字符串) 搜索在该字符串上是否出现了作为参数传递的子字符串,如果找到子字符串,则返回子字符串在该字符串上出现的起始位置 (0表示第一个字符,1表示第 ...
- go并发
Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据. 以下是我入门的学习笔记. 首先,并行!=并发, 两者是不同的,可 ...
- 关于GRUB2
grub2启动引导 GRUB 2是GNU GRUB(GRand Unified Bootloader)的最新版本.bootloader(引导程序)是计算机开机后(bios自检之后)第一个运行的软件程序 ...
- JAVA08多态之课程问题解决
课后作业一:接口多态:使用接口代替抽象基类 1.源代码: package zoo4; import java.util.Vector; public class Zoo2 { public stati ...
- js制作简单的计算器
学着做了一个简单的计算器!记录记录!哈哈 <!DOCTYPE html> <html> <head> <title>简单的计算器</title&g ...
- 懒加载实现的分页&&网站footer自适应
最近在做手机端,发现下拉刷新和上拉加载的jq控件很少而且自我感觉不好用,比如iscroll之类-- 然后自己写了个懒加载的,也很简单,最基础的代码[不喜勿喷,但蛮实用的] wap手机端懒加载分页: 用 ...
- Python 对不均衡数据进行Over sample(重抽样)
需要重采样的数据文件(Libsvm format),如heart_scale +1 1:0.708333 2:1 3:1 4:-0.320755 5:-0.105023 6:-1 7:1 8:-0.4 ...
- Linux虚拟机中 Node.js 开发环境搭建
Node.js 开发环境搭建: 1.下载CentOS镜像文件和VMWare虚拟机程序; 2.安装VMWare——>添加虚拟机——>选择CentOS镜像文件即可默认安装带有桌面的Linux虚 ...