我应该将此代码放在 DDD 应用程序中的什么位置?

问题描述 投票:0回答:2

在 DDD 应用程序中我需要代码来执行此操作

  • 检查 IMemoryCache 是否有用户列表
  • 如果缓存中没有用户
  • 从 REST API 获取它们
  • 使用 efcore 和 repos 将 API 中的用户添加/更新到数据库中

我需要在 Web UI 项目和 Web 作业后台任务项目中使用此代码 - 我的第一个想法是使用应用程序服务,但不确定,因为我需要在 UI 和后台任务中重用它

architecture domain-driven-design
2个回答
1
投票

所有这些代码都涉及基础设施功能:

  • 缓存内容
  • API获取
  • 数据库访问

这些不是业务功能,因此在 DDD 应用程序中,所有这些代码都位于域层之外。实现这些的实际代码单元取决于应用程序的实际架构(DDD 不是)。

在经典的分层应用程序中,数据库访问和 API 获取通常位于持久层。内容缓存通常位于应用层。围绕数据库、API 与用户缓存源的动态听起来太令人困惑和尖锐,无法为使用其他架构风格提供方向。


0
投票

添加新的 REST API - getAndSaveUsers;业务逻辑位于服务层。 这将在内部调用(外部 API)getUsers REST API,并在内部调用存储库层中的代码(将用户保存到数据库)。

因此,从您的 UI 或任何组件中,只需调用新的 REST API - getAndSaveUsers

© www.soinside.com 2019 - 2024. All rights reserved.