7

我有一个域模型

  • Customer- 聚合根 - 因为没有客户,订单就无法存在
  • Order- 实体
  • OrderStatus- 价值对象

在我的表格中,我需要一个所有OrderStatuses.

我是否应该从包含所有 OrderStatuse 列表的空订单实体的存储库中获取空客户实体 (AR)?这很尴尬。

4

1 回答 1

0

好吧,它总是取决于你的问题域,但缺乏更多信息,我想说你可能需要稍微打破你的建模。

即使没有客户就不能存在订单,它也不会是客户 AR 下的子实体。您需要引入限界上下文的概念。

Customer 将是一个 BC 的 AR,而 Order 将是它自己的 BC 的 AR。

在这种情况下,您将使用 CustomerId 属性(而不是对象引用)从 Order 中引用 Customer,因为它们属于不同的上下文,因此它们甚至可以存在于不同的微服务中,在不同的数据库中。

你知道我要去哪里:获取一个空的客户,一个空的订单(或订单列表)只是为了到达订单状态列表是没有意义的。

即使 Order 和 Customer 确实属于同一个 BC,OrderStatus 也是参考数据,并且最好用枚举类型表示(或者更好的是,使用枚举模式)。

看看这个附加信息:

引用数据作为代码

实体、值对象、聚合和根

于 2020-11-10T18:33:15.967 回答