【发布时间】:2020-07-01 00:40:33
【问题描述】:
我有一个 CosmosDB 文档,它为我的问题空间中的某些东西建模——一辆汽车用于我们的目的。它目前有一堆与模型、颜色、制造年份等相关的属性。我想将 Car 视为 DDD 聚合,包括用于改变对象状态的公共方法以及将方法调用委托给引用的其他对象直接由聚合(在同一文档中)。我知道,在更好的 DDD 实现中,我将拥有与域模型不同的数据模型,并在它们之间具有映射函数,但将文档视为完整的聚合已经足够难了。团队的首选方向是以贫乏的方式处理文档,聚合方法出现在应用程序服务中,这使得聚合逻辑的测试更加困难。直接在文档中包含聚合逻辑有什么缺点吗?
【问题讨论】:
-
将聚合方法放在实体实例(映射到数据库)本身中非常普遍。事实上,即使在 DDD 文献中的示例中,我也不记得有任何例外。此外,在我的项目中,我自己也做得很好。如果按照 DDD 的建议去做,没有明显的缺点。
标签: domain-driven-design azure-cosmosdb