聚合根、工厂和部分聚合

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

我有一个名为

Configuration
的聚合根,它代表为多租户应用程序上的特定预配置客户配置的所有选项。由于需要配置的选项很多,用户通常会遵循一系列步骤(通过向导),然后有时希望部分保存稍后(可能是第二天)完成的数据。

我熟悉

Factory
概念,其规则之一是 not 如果部分聚合对象不符合不变规则,则不能创建部分聚合对象。

我的问题是如何解决部分对象用例?

java domain-driven-design
2个回答
3
投票

如果您想防止实体处于不完整状态,并且您存储部分填充的实体只是为了存储中间请求(而不是将其视为一个实体),那么您可能有一个单独的实体来表示“创建请求”。对我来说,创建请求(在另一方面,您可以将其视为工厂或工厂的输入)可以部分填充和持久化,并在完成后用于创建您想要的实际实体。


1
投票

阅读您的要求后,我发现聚合只允许存在部分数据集,因此我没有看到问题?没有不变量说“只有完成所有步骤后,聚合才被认为是有效的”,事实上似乎恰恰相反。

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