问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何理解android mvp模式中的interactor

发布网友 发布时间:2022-04-07 08:06

我来回答

1个回答

热心网友 时间:2022-04-07 09:35

Presenter起到的其实就是一个粘合剂的角色。

它调度了UI逻辑和数据逻辑,然而UI逻辑和数据逻辑的具体实现,Presenter是不用关心的,只需要处理好如何调度,和状态处理即可。

理解这个之前,你需要理解Model 和 ViewModel,一个Model也就是我们平常说的JavaBean,例如一个User类,它有自己的基本属性。姓名,年龄,用户名,密码等等。

而ViewModel代表的是视图的Model,例如一个登陆视图,它的ViewModel包含用户名,密码。

所以Model是不能直接被视图使用的,我们需要转换成ViewModel的形式,然后绑定到视图上。

你可能会说,我也可以直接绑定Model的属性到View上,但是这样View和Model就不是相互独立的了,也就违背了我们使用MVP、MVVM的初衷。

Interactor的作用实际上就是获取Model(从本地数据库,或者是服务器),转换成ViewModel,回调通知把ViewModel传递给Presenter。

Presenter实现了Interactor的回调接口,可以接收到ViewModel的实例,此时它在回调函数里面只需要将接收到的ViewModel绑定的View上面即可。

可以看到,在这个过程中Presenter并没有触及到具体的实现,只是把View 和 ViewModel进行了绑定而已。

当然你也可以把数据逻辑写在Presenter,但是Interactor就不存在了,其实Interactor也是可以重用的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 电脑wifi功能消失 给刚添辅食的宝宝选婴幼儿米粉要注意些什么? 6个月宝宝怎么选择米粉 为婴儿选购米粉时,有哪些是要注意的? 富士silvi90用什么胶卷? 钉钉电脑版不能用用英语怎么说 做什么运动能使小腿肌肉更发达 ps如何快速导出jpg图片? Mac的ps为什么按三键+s不能导出图片? 怎样才能把小腿肌肉练得发达呢? 做什么运动能使小腿肌肉发达?? 支付宝,微信等添加银行卡,扫一下银行卡,卡号就生成了是什么原理?是读取了卡片信息还是只是根据图片分 如何重新绑定银行卡号,用什么软件可以添加银行卡号 我想把工商银行卡的数字修改成我想要的数字要什么样的软件 信用卡银行卡识别自动提取银行卡号的工具有哪些? 有制作银行卡的么 做一张可以用的 属于自己的银行卡 跟自己的卡号一 微信支付绑定银行卡是,拍个照片就把卡号提取出来了,这是什么样的技术呀 冻结后会怎样 两个,*把其中一个微信钱包给冻结了,另一个微信会不会也冻结? 警方调查微信会导致账号冻结吗? 座机可以用无线路由器么? 有没有固定电话的无线发射接收设备 如何用无线网络连接有线座机 电信无线座机可以连宽带么??? 两台远距离无绳电话座机不用电话线连接,可以做成子母机那样对频实现无线互通吗? 用座机接无线wife的东西叫什么 电脑(座机)没有无线网络连接! 有无线电话接收器么,不要在重新拉电话线的那种…… 电脑座机装无线网卡是不是能接收无线路由器信号,要装的话怎样买还有怎样装 无线电话简接收器开关不灵怎么办? 怎么把座机来电转接到无线设备上 我想把手写的文字放到电脑里!怎么办? 无线网连接正常手机能上无限网但是座机电脑不能连接为什么 座机如何设置无线网络 两台闲置不用的无线固话座机怎么改装成语音呼叫机? 座机电话能不能用无线桥远程传输 朋友圈分组了为什么还能看见 微信朋友圈明明设置分组了 为什么对方还是看见了 微信分组问题:我以前是没分组的,发的朋友圈都是公开的,如果我现在设置分组,新加入的人也还是会看到我 您好!为什么微信设置标签分组后不给分组的人看,发朋友圈后他们还是