美文网首页Android开发经验谈Android开发程序员
Android 手把手教学 MVP 模式 (一)

Android 手把手教学 MVP 模式 (一)

作者: 老去的九零后青年 | 来源:发表于2018-11-26 17:22 被阅读5次

    首先 我们先来介绍一下

    MVP模式

    是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。这对于开发与维护来说不太友好,耦合度大高了。把Activity的View和Controller抽离出来就变成了View和Presenter,这就是MVP模式。

    MVC模式

    MVC模式的结构分为三部分,实体层的Model,视图层的View,以及控制层的Controller。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。

    Model:Bean实体类,保存解析实例数据

    View:就是我们的UI界面

    Controller:是控制VIew与Model的交互

    缺点:在Android开发中,Activity并不是一个标准的MVC模式中的Controller,它的首要职责是加载应用的布局和初始化用户 界面,并接受并处理来自用户的操作请求,进而作出响应。随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。

    MVP模式

    MVP框架由3部分组成:View负责显示,Presenter负责逻辑处理,Model提供数据。在MVP模式里通常包含3个要素(加上View interface是4个):

    View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity)

    Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合)

    Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。

    *View interface:需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试

    MVP的优点:

    1、模型与视图完全分离,我们可以修改视图而不影响模型;

    2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;

    3、我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;

    4、如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

    下面就让我们;来就行封装

    首先是BaseView

    在实现的方法中,进行loging加载、和标题的设置 还有请求接口错误日志

    所有Presenter的基类 view 的绑定在这里主要进行了绑定View和销毁VIew

    在这里还可以可以优化一下就是View 使用弱引用

    public void attachView(V view) {

    this.weakView =new WeakReference(view);

    }

    今天就先到这里  这里封装的就是基本的基类

    相关文章

      网友评论

        本文标题:Android 手把手教学 MVP 模式 (一)

        本文链接:https://www.haomeiwen.com/subject/eigbqqtx.html