Android

MVP

1.什么是MVP?

        通俗的讲,M 代表数据层,V 代表视图层(页面activity/fragment),P桥接层,也叫做操控中心,操作M 获取数据,处理业务,然后通知V 层做相应展示操作。如图所示

Android

2.相比较于MVC

        传统项目开发APP中,一个页面Activity/Fragment 往往即是M 获取数据和操作数据,又是大量业务逻辑和展示数据。这样明显有点不符合软件设计的 单一职责.

3.案例:登录模块

        此案例使用kotlin 语言,因为它很好的避免空指针异常,和很多语法糖,使代码更加简洁

  1. 目录结构
    Android
  2. 编写mvp抽象接口
            这里可能大家会疑惑,为什么一上来就是接口抽象,不要急,请继续往下阅读。
            首先写M 层接口抽象,这里简单起见,就写了两个接口方法,一个是登录请求接口,取消接口请求.
    Android
            P层接口,由前面图可知,P层起到中间人作用,操作M 和 V。
    Android
            V层接口
    Android
  3. 抽象接口实现

        实现M层
Android
        实现P层
Android
        V层,大家可以自行扩展,比如请求登录显示loading, showloading() 等等
Android

  1. 调用

        大家可能会觉得,这个MVP怎么写这么多接口,和实现的,这样子便于后期维护,想想假如你要调试需要修改一下数据。你只要找到你的M层修改就行,而不是改一处,处处改。调用简单
Android
        前面我们讲到,V 层就是页面Activity,因此我们要 实现LoginView。有没有觉得简单呢,Activity再也不用写好多代码,仅需要 p.调用,就实现功能。Activity仅仅做展示