【发布时间】:2024-01-06 13:48:02
【问题描述】:
我正在与聚合和聚合根作斗争。我有一个自然聚合根,它适用于大约 60% 的用户请求。 IE。这些请求自然适用于聚合根。
在我的聚合中,我有另一个实体,它只能作为聚合根的成员存在。然而,用户将被告知这个其他实体对象。从概念上讲,有时用户直接对这个非聚合根对象进行操作是有意义的。
所以,我想我有几个选择:
- 它们都可以是聚合根,具体取决于用户请求的操作。
- 所有操作都必须经过*聚合根。
请注意,*聚合根将保存此其他实体的集合。
例子:
主聚合根:Car
第二个实体:座位(根据类型,汽车有 2 个或 4 个座位)。在我的域中,座位只能作为汽车的一部分存在。
域中的大多数操作都在 Car 级别。所以这将是聚合根的一个很好的候选者。但是,(我在这里为示例而苦苦挣扎),一些操作将在座位级别,例如SpillCoffee、ChangeFabric、Clean....
Seat 和 Car 都可以是聚合根吗?还是我应该总是从 Car 开始?
谢谢
【问题讨论】:
标签: domain-driven-design aggregates