在DDD中,我知道删除聚合根意味着立即删除聚合边界中的所有内容。
但我注意到,正如Lev在这个博客中指出的那样,在聚合中使用读模型(只读属性):http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/。
但是,由于这些模型是aggregate.So的一部分,在删除或更新聚合的情况下,我们如何对待它们?
此外,我们是否可以使用它们来确保集合的不变量/一致性?
我希望举一个例子,说明我们如何在不违反DDD原则的情况下在聚合中使用它们。
发布于 2017-09-24 06:29:10
但是,由于这些模型是aggregate.So的一部分,在删除或更新聚合的情况下,我们如何对待它们?
它们不是聚合的一部分(聚合是写模型)。在最好的情况下,它们是一个视图或一个或多个集合的投影。
此外,我们是否可以使用它们来确保集合的不变量/一致性?
不,因为它们不是总量的一部分。您可以使用它们进行验证,但是在最终一致的聚合前验证和非常特殊的情况下(如果您需要这种验证来保持强一致性,那么您应该检查您的集合边界,因为它们可能是错误的)。
P.S.那篇博文说,这些阅读模型将由UI或类似的人使用,而不是由Aggregates使用。
https://stackoverflow.com/questions/46380810
复制相似问题