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博客:一篇足矣

时间: 2024-08-03 18:16:25

android开发-mvp模式理解的相关文章

ym——Android开发MVP模式(解决了View和Model的耦合)

什么是MVP呢?它又和我们常常听到的MVC有什么关系了以及区别呢? MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不

Android开发MVP模式实践

现在用一个基于MVP模式的APP项目进一步分析MVP的实际应用. 原项目应该使用的是Android studio开发,笔者对项目进行了整理,广大Eclipser请猛点Github链接. 一.项目功能说明 APP获取好友列表后将数据展示在一个ListView中,点击Item会打开一个新页面展示好友详细信息. 二.项目结构 示例将代码分为四层,对应到MVP模式中: Mode:Entities Presenter:Use Cases+Presenters View:UI 为了保证每个层都能方便的进行单

Android -- 初探MVP模式

1,相信大家对mvp模式都很熟悉了,M-Model-模型.V-View-视图.C-Controller-控制器.MVP作为MVC的版本演化,与MVC的意义类似:M-Model-模型.V-View-视图.P-Presenter-表示器.从MVC和MVP两者结合来看,Controlller/Presenter在MVC/MVP中都起着逻辑控制处理的角色,起着控制各业务流程的作用.而 MVP与MVC最不同的一点是M与V是不直接关联的也是就Model与View不存在直接关系,这两者之间间隔着的是Prese

Android设计模式-MVP模式

一.什么是MVP模式 MVP(Model / View / Presenter)  是从经典的模式MVC演变而来,Presenter代替activity和fragment成为控制器,而activity和fragment专心做View层该做的事. 二.MVP的优点 1.模型和视图分离开了,层次更清晰了. 2.Presenter可以重复利用了. 3.如果我们把逻辑放在Presenter中,单元测试更简单了 三.实战 下边是我项目的结构图 MVP中parsenter处理完逻辑后通过接口通知View层,

Android开发之深入理解泛型extends和super的区别

摘要: 什么是泛型?什么是擦除边界?什么是上界限定或下界限定(子类型限定或超类型限定)?什么是类型安全?泛型extends关和super关键字结合通配符?使用的区别,两种泛型在实际Android开发中有什么用处? 一.什么是泛型? 泛型,大概的意思是指没有指定具体的类型的类或方法,以泛型的形式传入一个类中或方法中,在Java编程(Android编程)里面使用一对尖括号和一个大写字母表示,例如: //泛型类 public interface List<E>{} //泛型方法,类型参数位于返回类型

Android开发之深入理解Android 7.0系统权限更改相关文档

摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限请求代码(默认权限禁止),否则应用程序无法响应:Android 7.0在Android 6.0的基础上,对系统权限进一步更改,这次的权限更改包括三个方面: APP应用程序的私有文件不再向使用者放宽 Intent组件传递file://URI的方式可能给接收器留下无法访问的路径,触发FileUriExposedException异常,推荐使用FileProvider DownloadMana

Android开发之深入理解Android Studio构建文件build.gradle配置

摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applicationId和package属性值的关系,2.怎么配置安全的自定义签名,3.两种构建类型的区别,4.为什么要定制产品的偏好配置?,5.怎么才能加快DEX文件的生成速度,6.为什么要将一个apk拆分成多个?,7.关于引入依赖包你不知道的秘密.通过这篇文章的学习,你会对build.gradle文件有一个

Android开发教程:理解Intent和Intent Filter

在Android 帮助文档中,Intent的介绍为An intent is an abstract description of an operation to be performed,意思是一个Intent是对一个即将进行的操作的抽象,Intent的字面意识就是“意图”,Android应用程序中的三种其他应用程序基本组件——Activity, Service和Broadcast Receiver,都是使用称为intent的消息来”激活”的.对于向这三种组件发送intent有不同的机制: 使用

android开发FontMetrics的理解

Paint.FontMetrics.top:基准位置上方 最大高度 Paint.FontMetrics.ascent:基准位置上方 推荐高度 Paint.FontMetrics.baseline 基准位置,为0 Paint.FontMetrics.descent 基准位置下方 推荐高度 Paint.FontMetrics.bottom 基准位置下方 最大高度 Paint.FontMetrics.leading 行间距大小 理解如图所示: 获取文本高度方法: 文本宽度:paint.measureT