domain-driven-design - 在领域驱动设计应用中拉动刷新

标签 domain-driven-design pull-to-refresh clean-architecture cache-invalidation

我需要在 iOS 应用程序中实现 pull to refresh,我遇到了这个问题,在那里我不知道如何用 DDD 的最佳实践来解决这个问题。
表示层有一个事件来刷新列表,这需要更新结果,丢弃缓存并从后端获取元素。
在域层,我的用例与存储库对话,但是,由于缓存是一个实现细节,存储库接口(interface)不公开“cleanCache”方法,因此没有从用例刷新缓存的干净方法。
这或多或少是我拥有的文件结构
领域

  • GetAllTodosUseCase
  • TodosRepository(接口(interface))

  • 基础设施
  • InMemoryTodosRepository(缓存)
  • RemoteTodosRepository (api)
  • InMemoryWithRemoteTodosRepository(组成缓存和api)

  • 应用
  • 工厂

  • 介绍
  • UI(与交互器界面对话)
  • 最佳答案

    由于在可以使用缓存和需要获取远程资源时似乎是特定于用例的,因此决定使用哪个存储库最适合应用程序层。
    例如,您可以使用一个工厂,它在运行时为应用程序用例提供具体的存储库实现,但仍然仅在编译时依赖于存储库接口(interface)。
    或者您使用相同的方法创建另一个存储库接口(interface),并将此存储库接口(interface)显式绑定(bind)到应该使用缓存的具体用例。

    关于domain-driven-design - 在领域驱动设计应用中拉动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65135729/

    相关文章:

    java - 层间通信装饰器

    javascript - 为什么我在 Hostinger 上的 ReactJS 项目在打开新选项卡或刷新页面时会出现 404 错误?

    c# - DDD实践: Should I create a repository for value objects

    java - 领域驱动设计——如何在 UI 上使用值对象

    html - 在移动网络浏览器上下拉刷新

    rust - 为什么 Clippy 建议传递 Arc 作为引用?

    ios - 永久设置 UITableView 内容插入

    android - 在 ActionBar-PullToRefresh 库中更改加载屏幕的文本

    每种存储库方法的Android Clean Architecture UseCase?