MVP -- 基础知识

一、概念

MVP分为三个部分:Model(数据)、View(界面)、Presenter(交互中间人)
MVP是MVC的变种,强调Model层和View层的最大化解耦。

二、模型图

MVP

Model(数据):
负责数据的来源和封装,比如网络请求、数据库操作等。如果有必要则提供接口暴露自己处理数据的状态和进度。
Model层提供接口,实现功能,供Presenter层调用。
View(界面):
负责界面相关操作,比如布局界面的初始化、各种listener的设置、更新界面等。View层包括布局文件、Activity和Fragment等。
View层一般会持有Presenter层的引用,可以通过构造方法注入或者普通方法注入的方式获得Presenter层的实例,并将非界面的业务逻辑交给Presenter层处理。
View层提供接口,实现功能,供Presenter层调用。
Presenter(交互中间人):
处理非界面的业务逻辑,让Activity和Fragment只负责处理界面,符合单一职责原则。
Presenter层提供接口,实现功能,供View层调用。

三、工作流程

View层向Presenter层发出数据加载请求,Presenter层调用Model层的接口请求数据,当Model层处理完毕会直接返回结果给Presenter层,Presenter层调用View层的接口实现界面的刷新。

四、问题

由于我们使用了接口的方式去连接View层和Presenter层,这样就导致一个问题,如果有一个逻辑很复杂的界面,即有很多个View,每个View对应一个Presenter,这样的话接口就会有很多,维护接口的成本就会非常大。

五、使用场景

对于简单应用,使用MVP比较麻烦,因为要定义的接口较多。
但是对于复杂应用,MVP是一种良好的架构模式,它能够使应用层次分明。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容