Domain driven design 多个域对象和存储库支持同一实体的不同用途?

Domain driven design 多个域对象和存储库支持同一实体的不同用途?,domain-driven-design,Domain Driven Design,我正在开发一个应用程序,允许用户跟踪工单状态。默认界面列出所有打开的工单,并允许用户更新单个工单的状态。此列表是“实时”的,因为它将在其他工作站上的其他用户进行更改时更新 有一个不经常使用(但必需)的可选UI,它将列出当天的所有工单(不包括当天某个时间点打开的工单)。用户无法对此列表进行更改,并且此列表是静态的,即显示列表时的快照不是“活动的” 从后端服务检索工作单数据。可以根据需要更新服务合同 我的问题是围绕WorkOrder实体的两个用例对域进行建模。在表示层中我将有两个视图和关联的视图模型

我正在开发一个应用程序,允许用户跟踪工单状态。默认界面列出所有打开的工单,并允许用户更新单个工单的状态。此列表是“实时”的,因为它将在其他工作站上的其他用户进行更改时更新

有一个不经常使用(但必需)的可选UI,它将列出当天的所有工单(不包括当天某个时间点打开的工单)。用户无法对此列表进行更改,并且此列表是静态的,即显示列表时的快照不是“活动的”

从后端服务检索工作单数据。可以根据需要更新服务合同

我的问题是围绕WorkOrder实体的两个用例对域进行建模。在表示层中我将有两个视图和关联的视图模型,但是我应该有两个单独的域对象和存储库吗

其他信息:

  • 很少在业务结束时访问“全部”视图 今天,这个列表可能相当大,需要相当数量的数据 内存(如果缓存在客户端上)
  • “当前”视图与其他用户的更改保持同步 处理广播事件/通知,指示更改已完成 制作并刷新列表

您不需要单独的工单实体,因为这两个视图中存在相同的工单概念,但您可能需要在特定类型的查询中表示这些实体。一个只读模型是一个只读的、数据只读的对象,它被设计成适合一个特定的查询。

两个都是一个存储库?这并不重要,但我先从一个开始。此外,这些存储库不是传统的存储库,因为它们只服务于查询,没有持久性。您也可以称之为WorkOrderQueryService。