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

时间:2019-04-10 10:05:02

标签: android mvvm android-architecture-components android-jetpack clean-architecture

在我的Android Clean体系结构中真的需要使用UseCases吗?

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

这不是更好的选择吗?难道UseCase代码不仅会使调整代码变得不必要地困难了吗?

2 个答案:

答案 0 :(得分:4)

如果您要严格遵循Bob叔叔的干净架构,则应使用UseCases。

  

他们正在直接从ViewModels访问存储库。那不是更好的选择吗?

这在很大程度上取决于干净的体系结构,这使测试变得超级容易,还使您在实现事物之前更加从体系结构上进行思考,并且使您不必再为调整代码做出妥协,并且遵循SOLID原则,很棒。

另一方面,设置项目要困难得多,有时会觉得您对它进行了过度设计

但是设置之后,您会发现可维护性和可伸缩性都有改善。

我认为知道什么是干净的体系结构并采取适合您需要的东西真是太好了。

如果您想了解有关干净架构https://caster.io/courses/android-clean-architecture以及它如何适合android的更多信息,这是很棒的资源。

答案 1 :(得分:0)

好吧,我认为确实没有必要使用UseCases,特别是如果您不熟悉它们的话。 UseCases只是一种架构模式,用于创建更具扩展性的项目并重用代码。

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

1)两个ViewModel具有处理Repository中数据的通用逻辑。那可能会变成UseCase(但不一定,您可以为此创建一个较小的VM

2)您想在RepositoryViewModel之间包括一个plus层,因为您需要该层来处理一些额外的逻辑,这是没有目的的Repository和/或ViewModel中的一个。例如,RepositoryViewModel都不能解决调度问题。 (类似的问题,如果您有缓存,则在 MainThread 上获取数据,如果不切换到后台线程。)

因此,总而言之,与架构无关。您不应在您的项目上强加任何东西,架构模式只是为了使您的应用程序更易于修改,扩展和使用。