【发布时间】:2019-10-15 22:19:18
【问题描述】:
我正在重构我们的代码库。现在我们有一个单例存储库,它处理网络请求并管理与 RxJava 和 Kotlin 协程链接的操作符。
但是,Repository 被注入到多个 ViewModel 中并且变得更难维护。
我想抽象我们的代码库并集成一些用例。据我所知,在 useCase 中使用单个网络请求是普遍的看法,这就是为什么我不确定链接网络请求的原因。
我需要使用 Observable.zip 和 RxJava Subjects 链接多个网络请求。
以下流程是否正确?
Viewmodel 调用 useCase,它创建网络请求(来自存储库)、处理该网络请求、创建 LiveData 并将该 LiveData 转发到 ViewModel 并从存储库更新主题,以便 Repository 在所有网络请求完成后发出一些数据?
然后我们的存储库仍然与我们当前的方法相似,代码更少,并且只负责多个网络请求链接。
我希望我已经足够清楚了。我研究了多个 MVVM 示例,但它们对于具有复杂网络逻辑的实际应用程序似乎并不实用。
【问题讨论】:
标签: android mvvm rx-java2 android-architecture-components android-livedata