Android MVP模式简单例子实战

概要

  • 对于mvp模式,大家都知道是由mvc演变而来的,对于MVC大家都知道

    • M Model(用于存放实体模型与业务逻辑)
    • V View(存放布局和资源文件)
    • C Control(存放Activity)
  • 对于mvc中的view在android中的功能就比较弱化了并且在Control中的activity中我们在实际开发中经常都是上千行代码,经常都是将对一些点击时间的处理和一些逻辑都放在activity中,这样就造成了activity很臃肿,并且这样对于activity在mvc中处于View与Control之间 这个尴尬的位置

  • 对于mvp模式的出现则挽回了activity在mvc中的尴尬局面,mvp主要为

    • M Model(存放数据模型与业务逻辑)
    • V View(存放activity 已经一些自定义的View)
    • P Presenter(主要负责View与Model的交互)
  • 我们可以看到mvc由mvp的转化主要将Control换成了Presenter,由Presenter来处理activity中的逻辑和与Model层的交互

总结

其实对于mvc转换到mvp我们可以用下面的两张图来解释一下

mvc模式

图片来源网络,侵权删

mvp模式

图片来源网络,侵权删


我们可以看出上面的两张图,由activity直接向Model层通信,转化到 View层通过Presenter层向 Model的数据类型通信,这样可以明显的看出很大程度降低了程序的耦合度,废话也不多说了,下面我们用一个提交信息的例子来让大家更直观的理解mvp

实战

下面我用一个简单的提交信息的例子来说明下mvp在这个例子是怎么用的,下面是示例图

这里写图片描述

下面是项目的整个结构


我们可以看出我们在MainActivity中的一些逻辑性的代码全都通过MainActiityPresenterCompl来实现,由他直接向Model层通信

下面是代码

信息模型


/**
 * Created by blue on 2016/10/15.
 */

public class UserInfo {
   
   
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    private String age;
    private String name;
    private String gender;
    private String hobby;
}

presenter的接口

package com.mvpdemo.blue.mvpdemo.presenter.ipresenter;

import android.content.Context;
import android.widget.EditText;
import<
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值