【问题标题】:Android Clean Architecture UseCaseAndroid 清洁架构用例
【发布时间】:2022-05-18 21:09:06
【问题描述】:

我正在开发一个简单的应用程序。

  1. 用户浏览 RecyclerView 的元素到结束屏幕。
  2. 将 LastFragment 滚动到片段的最底部时,SharedPref 将状态保存为 true。然后下一个元素变为可用。
  3. LastFragment 有一个按钮,单击时会播放声音 我正在尝试根据干净架构的原则构建应用程序,并且

    我不明白 UseCase 在哪里。你能解释一下这里应该使用哪个 UseCase 吗?

    标签: android kotlin use-case clean-architecture


    【解决方案1】:

    你需要有类似的东西:

    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 代码。它对实现细节一无所知——它们被接口隐藏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 2017-03-20
      • 2018-06-15
      • 1970-01-01
      • 2016-05-07
      • 2016-09-17
      • 2018-04-24
      • 2018-02-27
      相关资源
      最近更新 更多