南昌Android培训
达内南昌中心

13732203138

热门课程

Android中怎么应用MVP架构?

  • 时间:2018-04-24 10:23
  • 发布:xxq2dream
  • 来源:简书

Android中怎么应用MVP架构

首先,啥是MVP架构?

MVP架构是一种组织代码的形式结构,全称是Model View Presenter,其中每一个单词代表架构中的一部分,即分别为Model:处理数据相关的,View:界面显示的,Presenter:连接View和Model的中介

MVP架构有啥优势和特点

首先,MVP能够有效地降低View的复杂性。一般我们把Activity和Fragment看作是View,用来处理界面UI的显示和更新。而MVP则是把Activity和Fragment中的跟业务逻辑相关的代码抽离出来,从而解耦View元素和业务逻辑

MVP模式可以让UI界面和数据分离,我们的应用至少可以分为3层,这样使得我们也可以对这3个层次进行独立的单元测试

MVP并不是一个标准化的模式,可以根据自己的需求修正MVP的实现方式。只要保证我们是通过Presenter将View和Model解耦合、降低类型复杂度、各个模块可以独立测试、独立变化,这就是正确的方向

如何在项目中应用MVP模式

下面我们直接通过代码来演示如何用MVP架构来组织代码

上述的MvpContact类里面包含了2部分接口,Presenter接口里面是具体的数据请求,View层通过调用这个接口发起数据请求;View接口则是用于更新UI界面的接口

上面的MvpModel类对应MVP中的Model层,专门负责处理数据,比如网络请求或是从本地获取数据。参数里的接口用于将数据请求的结果回调。

下面我们来看看Presenter层的MvpPresenter类

首先MvpPresenter在初始化的时候会与View绑定,并初始化用于处理数据的MvpModel,以便进行数据处理

MvpPresenter里面实现了MvpContact中的Presenter接口,接口里面调用MvpModel的getData方法来进行数据请求,这样就将View层发起的数据请求转发给了Model层来处理,并通过GetDataListener接口回调数据处理的结果

数据处理回调以后,通过更新UI的接口来把结果更新到UI上。下面我们来看看MVP中的View层,这里我们以一个Activity代表

首先,MvpActivity在onCreate方法中初始化Presenter,并通过调用Presenter的getData接口发起数据请求

MvpActivity通过实现MvpContact的中View接口来获取数据请求的结果回调,并进行相应的反应,比如更新UI或是弹出错误提示

以上就是MVP的简单应用啦!是不是很简单?

MVP架构的应用是很灵活的,可以根据需要进行修改。比如上面我们实现的MVP模式中,Model层通过设置Listener将处理结果回调给Presenter层,这就会有一个问题:当Model层中的数据处理方法比较多的时候,我们就需要写很多的回调接口了,因为可能每个数据请求成功返回的结果都是不同的实体!

我们可以将上面的实现修改一下,直接在Presenter里面进行数据的处理,把Model给撇掉,对应修改后的MvpPresenter类如下

好了,以上就是MVP在Android中的简单应用了

当然架构有很多种,除了这里介绍的MVP,还有MVVM、MVC等。我们的目标是让我们的项目结构更加合理,扩展性更强,能够拥抱变化。每种架构都有其特点和优势,可以根据实际需要来选择。

最后有兴趣的小伙伴可以学习一下Google官方的示例

Google官方的MVP项目

上一篇:Android首次启动卡顿问题分析
下一篇:怎么解决Android 设备兼容性问题?

Android开发没人要了?

安卓培训开发到底怎么样?

android是什么?学android开发能做什么?

新手学Android需知哪些问题呢?

选择城市和中心
贵州省

广西省

海南省