我正在与聚合和聚合根作斗争。我有一个自然聚合根,它适用于大约 60% 的用户请求。即这些请求自然适用于聚合根。
在我的聚合中,我有另一个实体,它只能作为聚合根的成员存在。然而,用户将被告知这个其他实体对象。从概念上讲,有时用户直接对这个非聚合根对象进行操作是有意义的。
所以,我想我有几个选择:
- 根据用户请求的操作,它们都可以是聚合根。
- 所有操作都必须经过顶级聚合根。
请注意,顶级聚合根将保存此其他实体的集合。
例子:
主骨料根:车
第二个实体:座位(根据类型,汽车有 2 个或 4 个座位)。在我的域中,座位只能作为汽车的一部分存在。
域中的大多数操作都在 Car 级别。所以这将是聚合根的一个很好的候选者。然而,(我在这里举个例子很困难),一些操作将在座位级别,例如 SpillCoffee、ChangeFabric、Clean...。
Seat 和 Car 都可以是聚合根吗?还是我应该总是从 Car 开始?
谢谢