android mvp架构搭建

mvp架构中v(view)负责页面显示,p(presenter)作为一个中间商,负责连接v与m(model),m负责实际数据操作

搭建思路:

v通过p去执行m操作,m在将数据返回到p,让p回调给m

操作步骤:

1.以一个网络请求为例子说明下主要文件结构:

api:网络请求api, baseactivity:activity的父类,basepresenter:子presenter的父类,baseview:子view的父类,loginbean:网络请求解析bean,modelutils:工具类,执行网络请求,retrofitutils:框架初始化,urls:地址,model2presenterListener:回调接口,model,presenter,ui,分别代表m,p,v层,其中impl是m和p层的具体实现

文件结构

2.创建一个baseactivity(basefragment同理),一个baseview,一个basepresenter,作为一个v和p的父类,baseview上主要有包括方法showdialog(在执行一个功能时可能会需要弹窗),hidedialog(在执行完一个功能时可能需要关闭一个弹窗,往往和showdialog成对出现),showerror(执行一个功能时错误回调),basepresenter上主要有包括方法attachview(负责绑定对应view),detachview(解除绑定的view),basepresenter要持有baseview的子类负责绑定具体的v,baseactivity上有basepresenter的对象,需要去调用basepresenter的方法,在创建activity的时候,需要去初始化对应的presenter,再将presenter去绑定到本activity,如下:

3.把父类搭好后,开始实现具体子类,正常一个v对应一个p和一个m,

v层实现主要是创建一个p,去执行业务方法,如下以执行一个网络请求所示,在mainactivity中new一个mainpresenter,调用p.phonepasswordlogin是执行一个网络请求,结果会从phonepasswordloginfinish回调回来,如果请求失败会从showerror中回调回来,mainview就是负责具体业务回调接口,如下:

p层实现是作为一个中间商,它持有两个对象,一个是m,一个是v接口,它会执行由v调用的方法去调用m的具体实现方法,在由m返回的时候去回调给v接口,从而实现数据返回到对应的activity中,如下:

m层是负责实现具体逻辑,通过p调用方法执行后回调结构给p,如下:

总体方式就是这样.

最后附上demo地址:

https://github.com/Yofreg/mvpdemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值