interactor与presenter的关系

时间:2021-08-28 21:14:43

presenter的任务

presenter在mvp中是一个粘合剂的作用,将view和model结合起来。
它调度了UI逻辑和数据逻辑,然而UI逻辑和数据逻辑的具体实现,Presenter是不用关心的,只需要处理好如何调度,和状态处理即可。
理解这个之前,你需要理解Model 和 ViewModel,一个Model也就是我们平常说的JavaBean,例如一个User类,它有自己的基本属性。
而ViewModel代表的是视图的Model,例如一个登陆视图,它的ViewModel包含用户名,密码。
所以Model是不能直接被视图使用的,我们需要转换成ViewModel的形式,然后绑定到视图上。
你可能会说,我也可以直接绑定Model的属性到View上,但是这样View和Model就不是相互独立的了,也就违背了我们使用MVP初衷。

interactor的任务

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

interactor和presenter的关系

Presenter实现了Interactor的回调接口或者得到实现了interactor的实现类的实例对象,
presenter可以接收到ViewModel的实例,此时它在回调函数里面只需要将接收到的ViewModel绑定的View上面即可。
可以看到,在这个过程中Presenter并没有触及到具体的实现,
只是把View 和 ViewModel进行了绑定而已。

给上我的一个mvp架构的视图
interactor与presenter的关系