浅谈安卓框架mvp
最近这几天面试遇到这个问题,所以认真研究了两天,在这里说下自己见解,若有问题,欢迎大家指出讨论。
mvp框架是mvc框架的进阶,
在mvc框架中:
m,也就是model,代表数据获取和操作层,譬如读取数据库,读取网络都是在这一层实现。
v,是View,也就是用户可视层,在这里指的是安卓中的xml布局文件。
c,控制器Controller,在mvc框架中,它代表的是activity,响应用户数据,将请求发给m层,从m层获取数 据之后,更新v层,是m跟v沟通的媒介
但是mvc有缺点,因为在mvc中,v只是单纯代表xml,而c却有着大量用户响应操作,比如获取请求还有从m层得到数据再到去更新v层,都在c中实现,而若是代码太多,会让的c层非常臃肿,以后不好修改。
因此在这个基础之上,为了将代码进一步分离,又提出mvp框架
m,是model,同样是数据操作层
v,这里注意,这里的v不代表xml布局文件了,而是代表activity
p,中介层,从v层获取响应事件,然后从m层得到数据操作结果,回调给v层,是m和v的媒介
mvp框架图如同下图所示,将数据操作层和展示层彻底分离,presenter只作为一个中介,
我写了一个简单的mvp工程,欢迎大家指教
这个是m层,数据操作和获取,我在这里模拟去请求网络
这个是p层,用来做v层和m层之间的连接
这个是v层,用来展示界面
若有问题,请大家一定要指出,谢谢!!!