MVP架构

本文介绍了MVP架构,详细解释了MVP的组成部分:View、View Interface、Model和Presenter,并探讨了使用MVP的原因,如降低耦合度、便于测试。同时,文章提供了MVP实例代码,并总结了MVP的优点和缺点,强调了其在Android开发中的应用。
摘要由CSDN通过智能技术生成

MVP架构

一、什么是MVP和MVP结构?

  • MVP是由MVC演变而来的,然而MVP是Model, View和Presenter的简称。Model提供数据(Model并不 是必须
    有的,但是一定会有View和Presenter),View负责显示,Presenter负责逻辑的处理。在MVP中View并不
    直接使用Model,它们之间的通信是通过Presenter ,所有的交互都发生在Presenter内部。
    这里写图片描述
  • 在MVP模式里通常包含4个要素:

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

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

    3、Model: 数据处理和业务逻辑部分(有时也实现一个Model interface用来降低耦合);

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

二、为什么要用MVP。

  • 因为在Android中,Activity严重耦合了界面和数据获取层。这样不仅导致了Activity的类越来越庞大,
    而且,如果修改数据获取层,可能也导致整个View 都要重写。也非常不利于模块和自动化测试。MVP使
    View独立于数据,把大量的 逻辑从Activity中提取出来。把应用分层,每层都可以独立测试和变动。

三、MVP的实例代码。

  • IView接口类 InterfaceSummaryView.java

/**
 * View接口读取数据
 * Created by Administrator on 2016/3/24.
 */
public interface InterfaceSummaryView {

    void showData(VehicleModel vehicleModel); //显示数据

    void concealProgressBar();//关闭进度条

    void showSeparator();//显示分割线

    void setData(VehicleModel vehicleModel);//给对象赋值

    void ErrorPrompt(String message); //没有数据时候的提示语

    String getSearchValue(); //获得关键字

    String getVehicleId(); //获得车型ID

    Boolean getFlag();//是否从搜索界面进来的

    void NextToActivity(); //跳转到下一个界面

}
  • 展示界面 VehicleSummaryActivity.java
 /**
 * 展示界面
 * Created by Administrator on 2016/1/5.
 */
public class 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值