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