【发布时间】:2019-11-23 20:47:59
【问题描述】:
我有一个架构问题。目前我的应用程序非常简单,用户登录并获取餐厅列表,然后他可以注销。我将 kotlin 协程用于异步部分、mvvm 实时数据和 koin DI。
这是用户点击登录时的登录流程。正则表达式验证在 LoginViewModel 中完成 -
LoginFragment -> LoginViewModel -> AccountUseCase -> AccountRepoImpl -> AccountLocalDataSource or AccountRemoteDataSource
并且响应从DataSource to LoginFragment.一路返回
我将AccountUseCase 和AccountRepoInterface 与AccountModel 一起视为域文件夹的一部分。 AccountRepoImpl 在 repo 文件夹中,AccountLocalDataSource 和 AccountRemoteDataSource 在 datasource 文件夹中。
我的问题是理想的域不应该有任何第三方依赖。但是我的AccountUseCase 将livedata 发送到viewmodel 类,因此我的域使用android livedata 依赖项,而且它没有做太多,只是为loginuser 调用repo。那么有这个用例有意义吗?
【问题讨论】:
-
听起来你不需要
AccountUseCase。 -
@EpicPandaForce 你为什么这么认为?
-
因为您似乎已经有一个 AccountRepoImpl 来做与 UseCase 正在做的事情相同的事情。但也许它实际上是您不需要的 Repo 以及 UseCase 可以做什么。
-
@EpicPandaForce 是的,目前我不需要用例,但是当我的应用程序变大时,我需要一个用例
-
见medium.com/@Zhuinden/… :p 在你真正需要的时候添加东西
标签: android kotlin android-livedata android-mvvm