此处的简洁是逻辑的简洁,而不是代码本身。
比如购物车界面,有很多请求网络的地方:获取购物车商品列表、购物车商品的删除、购物车商品的购买等等, 这么多网络请求,如果都写在一个Activity,而且还有大量逻辑判断,那这个Activity的行数~ 看着就让人头痛, 即便写了注释,维护起来也是比较麻烦的。
MVP的使用,使Activity中的网络请求剥离出来成为model、presenter,其中 model 只负责网络的请求; presenter 负责处理请求网络后的数据处理:加载中 成功 or 失败 取消加载; 最后 View 进行界面的 UI 展示;
MVP在实现代码简洁的同时,额外增加了大量的接口、类,不方便进行管理。
项目中使用到了Contract,Contract 是一个契约,将 Model、View、Presenter 进行约束管理,方便后期类的查找、维护。
多个地方使用的话,是创建多个 M,V,P 接口, 一个activity对应一组(M,V,P),如果两个 acitivty 都有添加同一个的功能,那可以共用一组(M,V,P)