为什么使用用例? Android Jetpack 未在文档中提及用例

Why use UseCases? Android Jetpack is not mentioning UseCases in the docs

在我的 android Clean Architecture 中真的有必要使用 UseCases 吗?

在 Android Jetpack documentation 中他们没有提到它。 他们直接从 ViewModels 访问存储库。

这不是更好的选择吗? UseCase 代码不只是让调整代码变得不必要地更加困难吗?

如果您想严格遵循 Uncle Bob 的干净架构,那么您应该使用 UseCases。

They are accessing the repository directly from the ViewModels. Isn't that a better option?

这在很大程度上取决于,干净的架构让测试变得超级容易,也让你在实现之前更多地从架构上思考,让你不做妥协 a.k.a。 调整代码,它遵循非常好的 SOLID 原则。

另一方面,设置项目要困难得多,有时感觉你在过度设计它

但在设置之后,您会发现可维护性和可扩展性方面的改进。

我认为了解什么是干净的架构并采用适合您需要的架构是很棒的。

如果您想了解更多关于简洁架构 https://caster.io/courses/android-clean-architecture 及其适用方式的信息,这是很好的资源 android。

嗯,我认为确实没有必要使用 UseCases,尤其是当您不熟悉它们时。 UseCases 只是一种用于创建更具可扩展性的项目和重用代码的架构模式。

我个人使用 UseCases,我认为它有意义。例如,在我们的项目中,我们有 ViewViewModelRepository。使用 UseCase 的两种常见情况是 if

1)两个ViewModel有共同的逻辑处理来自Repository的数据。这可能会变成 UseCase(但不一定,您可以为此创建一个更小的 VM

2) 你想在 RepositoryViewModel 之间包含一个加层,因为你需要那个层来处理一些额外的逻辑,即是出于Repositoryand/orViewModel的目的。例如,RepositoryViewModel 都不应该解决调度问题。 (类似这样的问题,如果你有缓存,则在 MainThread 上获取数据,如果没有则切换到后台线程。)

所以总而言之,与架构相关的任何内容都不是必需的。你不应该在你的项目上强加一些东西,架构模式只是为了让你的应用程序更容易修改、扩展和使用。