android MVP框架

MVC模式 有两个主要的缺点: 首先, View持有Controller和Model的引用; 第二, 它没有把对UI逻辑的操作限制在单一的类里, 这个职能被Controller和View或者Model共享.所以后来提出了MVP模式来克服这些缺点.

MVP(Model-View-Presenter)模式:

    Model: 数据层. 负责与网络层和数据库层的逻辑交互.
    View: UI层. 显示数据, 并向Presenter报告用户行为.
    Presenter: 从Model拿数据, 应用到UI层, 管理UI的状态, 决定要显示什么, 响应用户的行为.

优点:
    MVP模式的最主要优势就是耦合降低, Presenter变为纯Java的代码逻辑, 不再与Android Framework中的类如Activity, Fragment等关联, 便于写单元测试.

首先来一张思维导图:

android MVP框架

说明:以C结尾的代表Class,是实现类,以I结尾的是Interface,是接口。

1、View接口定义了界面上的显示,比如弹出toast等

2、在Activity/Fragment中实现View接口

3、Model负责数据处理,比如本地和远程

4、Presenter负责逻辑处理,一般是从model中获取数据,在界面中展示

5、Activity/Fragment中对Presenter实例获取

 

参考:Google官方MVP Sample代码解读