首页 > 其他分享 >Android MVP 实例

Android MVP 实例

时间:2023-04-05 18:36:59浏览次数:47  
标签:MVP MVC 模式 Presenter 实例 Android Model View


本文是「吴小龙同学」投稿,MVP其实一直被提及比较多,我的读者们可能有一些人不理解,其实再多的理论比不上一次简单的实践,这篇文章就以一个简单的请求天气功能,来演示Android MVP是如何使用的。

效果预览

Android MVP 实例_业务逻辑

准备


MVP流程

Android MVP 实例_java_02

说明:

步骤1:UI实现View方法,引用Presenter

步骤2:Presenter调用Model,走Model具体逻辑

步骤3:Model逻辑实现,回调Presenter方法

步骤4:Presenter回调View,即回到UI,回调View方法

gradle文件

compile 'com.loopj.android:android-async-http:1.4.9'

说明:请求网络使用async-http

目录结构

Android MVP 实例_业务逻辑_03

MVP之V

MainView.java

Android MVP 实例_业务逻辑_04

MainActivity

Android MVP 实例_MVC_05

Android MVP 实例_业务逻辑_06

MVP之P

MainPresenter.java

Android MVP 实例_java_07

Presenter

Android MVP 实例_java_08

IMainPresenter

Android MVP 实例_MVC_09

MVP之M

MainModel

Android MVP 实例_MVC_10

MainModelBean

Android MVP 实例_MVC_11

源码地址

https://github.com/WuXiaolong/AndroidMVPSample

总结


MVC模式

视图(View):用户界面。

控制器(Controller):业务逻辑

模型(Model):数据保存

View 传送指令到 Controller

Controller 完成业务逻辑后,要求 Model 改变状态

Model 将新的数据发送到 View,用户得到反馈

MVP模式

使用MVP时,Activity和Fragment变成了MVC模式中View层,Presenter相当于MVC模式中Controller层,处理业务逻辑。每一个Activity都有一个相应的presenter来处理数据进而获取model。

MVVM模式

将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。

标签:MVP,MVC,模式,Presenter,实例,Android,Model,View
From: https://blog.51cto.com/stormzhang/6171269

相关文章

  • Android性能优化总结
    这是来自一位粉丝「MeloDev」的投稿,讲真,我这里投稿的不少,但是只有我自己觉得很不错的才会通过,这篇文章我觉得对大家有用,而且性能优化也算是我面试必问的一个话题了,所以这里推荐给大家。微信不支持链接,可点击「阅读原文」查看原文。写在前面公司给了我一周的时间去学习Android性能的......
  • Android开发如何进阶?
    本着每周至少有干货产出的原则,今天必须写篇干货来回馈大家,我这的干货可是不收费的哦,争取以后的目标是让你们看完我的文章不赞赏都觉得亏得慌!之前不少人都问我同一个问题,就是我学习Android有一两年了,但是遇到瓶颈了,感觉没什么进步,到底怎么才能进阶呢?我相信有不少人遇到这样的困扰,那......
  • WebGL-实例化绘制
    今天来学习webgl一个重要功能:InstancedDrawing(实例化绘制),内容翻译自webgl学习网站webglfundamentals(由于英语水平尽量按原文翻译):https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html。WebGL下个版本(WebGL2.0)有一个功能叫实例化绘制。它的基本思想......
  • Android 还可以走多久?
    阅读文本大概需要1.8分钟。最近,有位知识星球的球友问我这么一个问题:「张哥,我做Android开发两年多时间了,但是最近总是很焦虑,看着人工智能越来越火,很担心Android要不行了,想问下,我现在要转行么?Android还可以走多久?」这个问题我觉得还蛮有代表性的,今天就姑且给大家谈谈这个话题......
  • Cesium实例化绘制(Instanced Drawing)
    上篇《WebGL-实例化绘制》我们学习了实例化webgl底层实现原理,基于webgl1.0标准的扩展。这篇博客我们来了解下cesium引擎是如何支持实例化功能的。该篇公众号主要参考了博客:《Cesium原理篇:6Render模块(6:Instance实例化)》。假如有这样的需求:有四个不同颜色的点,它们的相对位置(......
  • MVC、MVP、MVVM ?
    MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。MVC、MVP、MVVM三者特点MVC(同步通信为主):Model、View、ControllerMVP(异步通信为主):Model、View、PresenterMVVM(异步通信为主):Model、View、ViewModel什么是......
  • Android 构建工具--AAPT2源码解析(一)
    一、什么是AAPT2在Android开发过程中,我们通过Gradle命令,启动一个构建任务,最终会生成构建产物“APK”文件。常规APK的构建流程如下:(引用自Google官方文档)编译所有的资源文件,生成资源表和R文件;编译Java文件并把class文件打包为dex文件;打包资源和dex文件,生成未签名的APK文件;签名APK生成......
  • 数据库系统原理之数据库应用设计与开发实例
    数据库应用设计与开发实例第一节需求描述与分析在此,结合某高校个性化课程在线选课的实际需求,给出一个简化的需求分析一、功能性需求1管理员后台模块学生信息管理教师信息管理课程信息管理班级信息管理2学生使用模块查询课程浏览所选课程查询成绩3教师使用模......
  • 手把手教你实现Android编译期注解
    一、编译期注解在开发中的重要性从早期令人惊艳的ButterKnife,到后来的以ARouter为首的各种路由框架,再到现在谷歌大力推行的Jetpack组件,越来越多的第三方框架都在使用编译期注解这门技术,可以说不管你是想要深入研究这些第三方框架的原理还是要成为一个Android高级开发工程师,编译期......
  • Windows11搭建Qt 6.4.2 for Android+OpenCV4.7.0开发环境
    1.下载opencv-4.7.0-android-sdk.zip,下载地址:https://opencv.org/releases/,解压后,如下图:  2.编辑opecv_android.pri,内容如下(可使用命令行命令-dir*.a/ON/B>v8a.txt):message('Linux/Andoirdisrunning!')#data.files+=images/*.*#data.files+=dnn/*.prototxt#data.files......