【发布时间】:2022-05-18 21:09:06
【问题描述】:
我正在开发一个简单的应用程序。
标签: android kotlin use-case clean-architecture
我正在开发一个简单的应用程序。
标签: android kotlin use-case clean-architecture
你需要有类似的东西:
PersistEndWasReachedUseCase
或者您喜欢的任何名称将称为:“SaveToSharePrefs”逻辑。
它们应该是您的域层的一部分:
https://developer.android.com/topic/architecture/domain-layer
但与此同时,你需要保持清洁。这意味着您的逻辑不应该知道它保存状态的位置。它可能是数据库、SharePrefs、远程服务器等。
这就是为什么您应该使用存储库模式:
https://developer.android.com/codelabs/basic-android-kotlin-training-repository-pattern#0
https://www.raywenderlich.com/24509368-repository-pattern-with-jetpack-compose
所以你还需要有一个数据层:
https://developer.android.com/topic/architecture/data-layer
但长话短说——干净意味着什么——你把你的业务逻辑放在内层。它们依赖于在这些层中声明的接口。然后外部层实现这些接口。
基本上这是控制反转。检查固体。
https://miro.medium.com/max/1400/1*B4LEEv0PbmqvYolUH-mCzw.png
根据图像 - 您在外层推送实现细节:Room、SharedPrefs 等。内层是纯 Kotlin/Java 代码。它对实现细节一无所知——它们被接口隐藏。
【讨论】: