interactor与presenter的关系

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架构的视图
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Android 中,MVP(Model-View-Presenter)是一种常用的架构模式,用于将应用程序的业务逻辑与界面分离。在使用 MVP 架构时,Presenter 负责处理业务逻辑,并作为 View 和 Model 之间的中间人进行协调。 对于数据库操作,Presenter 可以负责处理与数据库相关的逻辑,例如数据的增删改查操作。Presenter 通常会通过调用 Model 层提供的方法来执行数据库操作,并将操作结果返回给 View 层进行显示。 通常,Presenter 在其内部持有一个对应的 View 接口的引用,以便与 View 进行交互。Presenter 可以接收来自 View 的用户交互事件,并根据这些事件进行相应的数据库操作。同时,Presenter 还可以将从数据库查询中获取到的数据传递给 View 进行显示。 下面是一个简单的示例: ```java public class UserPresenter { private UserRepository userRepository; private UserView userView; public UserPresenter(UserRepository userRepository, UserView userView) { this.userRepository = userRepository; this.userView = userView; } public void addUser(User user) { // 执行数据库插入操作 userRepository.addUser(user); // 更新 View userView.showUserAdded(); } public void getUser(int userId) { // 执行数据库查询操作 User user = userRepository.getUser(userId); // 更新 View userView.showUser(user); } // 其他数据库操作方法... } ``` 在上述示例中,`UserPresenter` 是一个负责处理用户相关操作的 Presenter。它通过构造函数接收了一个 `UserRepository` 对象和一个 `UserView` 接口对象。`UserRepository` 是一个抽象的数据访问层,用于执行数据库操作,而 `UserView` 是一个表示用户界面的接口。 Presenter 中的 `addUser()` 方法和 `getUser()` 方法分别执行数据库插入和查询操作,并将结果通过 `UserView` 接口的方法回调给 View 层进行显示。 总而言之,PresenterMVP 架构中充当了业务逻辑的处理者,负责与数据库进行交互,并将查询结果传递给 View 层进行展示。这样可以实现数据的管理和界面的解耦,提高代码的可维护性和测试性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值