ANDROID MVP 交互器与 MVVM 存储库

问题描述

我知道 MVVM 有 View - Viemodel -> 存储库流程,其中存储库负责处理 api 调用数据库调用...

另一方面,在 MVP 中,我们有视图 - 演示者 - 交互者。 在我看来,MVP 中的交互器与 MVVM 中的存储库非常相似。他们都使用服务进行网络和数据库调用,并将结果发送到 viewmodel/Presenter。

我想更多地了解这个交互器 - 存储库相关性。 如果我们在MVP架构中有Interactor,我们真的不需要Repository类,因为网络层已经在Interactor类中分离了吗? 也可以说 MVP 中的 Interactor 与 MVVM 中的存储库几乎是一回事吗? 它们有什么区别?

解决方法

Interactor 代表一个逻辑用例。交互器一方面更像是在视图层(通过与演示者通信)与实现环境或存储库之间架起桥梁。交互器用于清楚地了解您要在应用程序中开发的用例。

存储库,正如您提到的,为我们提供了干净的 API 来访问数据层并将数据传递到域层(交互器/用例)。

如果我们在MVP架构中有Interactor,我们真的不需要Repository类,因为Interactor类中已经分离了网络层吗? 答案-- 否 因为我们希望避免处理表示逻辑和数据流逻辑的对象。我们还希望数据流逻辑可以在不同的 ViewModel 之间重用。因此,最好不要直接从 ViewModel/Presenter 调用存储库,而是有一个额外的交互器/用例来处理。

供参考 - https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...