一、引言
MVP的优点:火是有原因的,我就不多BB了。
二、概述
MVC应该是大家最初学习的框架:
View:对应于布局文件
Model:业务逻辑和实体模型
Controllor:对应于Activity
MVP架构由MVC发展而来,在MVP中,M代表Model,V代表View,P代表Presenter。
Model :负责获取数据,数据的来源可以是网络或本地数据库等;
View: 负责界面数据的展示,与用户进行交互;
Presenter: 是Model与View之间的通信的桥梁,将Model与View分离开来。
MVP理解
Activity 和Fragment 视为View层,负责处理 UI。
Presenter 为业务处理层,既能调用UI逻辑,又能请求数据,该层为纯Java类,不涉及任何Android API。
Model 层中包含着具体的数据请求,数据源。
调用顺序为view->presenter->model,为了调用安全着想不可反向调用!不可跨级调用!

上图中说明了低层的不会直接给上一层做反馈,而是通过 View 、 Callback 为上级做出了反馈,这样就解决了请求数据与更新界面的异步操作。上图中 View 和 Callback 都是以接口的形式存在的,其中 View 是经典 MVP 架构中定义的,Callback 是我自己加的。View 中定义了 Activity 的具体操作,主要是些将请求到的数据在界面中更新之类的。Callback 中定义了请求数据时反馈的各种状态:成功、失败、异常等
demo的地址:https://github.com/zxiao208/Mytest
网友评论