我应该在哪里链接 MVVM 中的多个网络请求?用例还是存储库?

Where should I chain multiple network requests in MVVM? UseCases or Repository?

我正在重构我们的代码库。现在我们有一个单例存储库,它处理网络请求并管理与 RxJava 和 Kotlin 协程链接的运算符。

但是,该存储库被注入到多个 ViewModel 中,并且变得更难维护。

我想抽象我们的代码库并集成一些用例。据我所知,在用例中使用单个网络请求是普遍的看法,这就是我不确定链接网络请求的原因。

我需要使用 Observable.zip 和 RxJava 主题链接多个网络请求。

以下流程是否正确?

Viewmodel 调用 useCase,它创建网络请求(从存储库),处理该网络请求,创建 a LiveData 并将该 LiveData 转发给 ViewModel 以及 更新来自 Repository 的主题,以便 Repository 可以在所有网络请求完成后发送一些数据

然后我们的 Repository 仍然与我们当前的方法相似,代码更少,并且只负责多个网络请求链接。

希望我说得够清楚。我研究了多个 MVVM 示例,但它们似乎不适合实际应用程序,具有 复杂的网络逻辑

您不应在存储库中链接不同的 API 调用。映射到更复杂的域对象应该在用例中完成。通常有多个存储库,每个存储库负责业务领域模型的某一部分(例如 UsersRepository、PostsRepository 等)。用例可以依赖于多个存储库。

Example (Plaid app)