Android 干净体系结构中具有多个响应列表的用例

Android 干净体系结构中具有多个响应列表的用例,android,mvvm,repository-pattern,clean-architecture,Android,Mvvm,Repository Pattern,Clean Architecture,我正在为我的Android应用程序使用干净的架构原则。 我有一个带有两个列表的仪表板屏幕,一个列表包含提要,另一个列表包含事件 对于这个屏幕,我有一个包含列表的ViewModel 为了向ViewModel提供数据,我有一个名为ViewDashboardUseCase的用例 用例使用两个存储库,一个用于提要实体,另一个用于事件实体 考虑到这些信息,我有几个问题: 这是使用用例的正确方法吗?我应该创建两个用例吗 如果我应该使用一个用例,那么从该用例返回两个列表并在ViewModel中使用它们的最佳

我正在为我的Android应用程序使用干净的架构原则。 我有一个带有两个列表的仪表板屏幕,一个列表包含提要,另一个列表包含事件

对于这个屏幕,我有一个包含列表的ViewModel

为了向ViewModel提供数据,我有一个名为ViewDashboardUseCase的用例

用例使用两个存储库,一个用于提要实体,另一个用于事件实体

考虑到这些信息,我有几个问题:

  • 这是使用用例的正确方法吗?我应该创建两个用例吗
  • 如果我应该使用一个用例,那么从该用例返回两个列表并在ViewModel中使用它们的最佳方式是什么

在2017年谷歌开发者日上,Florina评论说要将你的屏幕分成她称之为“逻辑单元”的部分,然后在单独的LiveData上观察这些逻辑单元。 基本上,您将创建两个视图状态(或者我相信,在代码中是用例),然后用列表填充每个视图状态。最后,使用两个LiveData向视图公开这些视图状态

以下是会议的视频: 她在8分钟左右开始谈论这些

我应该创建两个用例吗

是的,您应该为每个存储库使用一个用例


根据您是否需要“单独”(一次一个)或“组合”(同时)输入列表,ViewModel可以使用这两个用例,也可以使用这两个用例的组合。

在干净的体系结构中,每个用例处理一个网络请求,因此我建议您创建两个UseCases@JaiprakashSoni我不认为每个用例应该只处理一个网络请求。假设我们有UploadFilesViewModel,它有UploadFilesUseCase来上传多个文件。从VM端我们可以调用uploadFilesUseCase.upload(files),在UseCase端我们可以运行多个请求。谢谢!非常有用的视频。肯定会把它作为我的应用程序的参考。