gpt4 book ai didi

c# - DDD,聚合根和实体

转载 作者:行者123 更新时间:2023-12-04 11:53:57 28 4
gpt4 key购买 nike

根据 DDD 原则,所有处理与特定聚合根对象相关的实体的 CRUD 操作都应该由聚合根进行。

但是我们如何从 aggr 根中仅更改实体的单个属性?我们应该在实体中有 setter 方法吗?这些方法应该有哪些访问器?

或者可能所有实体都应该有一个指向它们聚合根的引用?

或者我们永远不会只改变一个属性,而是用一个全新的实体代替当前的实体状态?

最佳答案

According to DDD principles all CRUD operations working with entities related to a specific aggregate root object should be made by the aggregate root.



是的;您可以将聚合根视为 role interface这限制了应用程序如何操作模型。

But how do we change only a single property of an Entity from the aggr root? Should we have setter methods in Entities and what accessors should these methods have ?



聚合是由多个实体组成的事实是一个实现细节。因此,在角色界面背后,您可以以任何您喜欢的方式委派更改的责任。

理想情况下,如果您正在对领域模型中的实体更改进行建模,那么应该有描述更改的通用语言中的相应词汇表。换句话说,就像我们使用业务语言来描述对聚合根所做的更改一样,我们也使用相同的语言来描述对模型中实体的更改。

因此,“CRUD”操作往往是操纵其自身状态的实体的内部实现细节。当您发现自己需要获取/设置或创建/读取/更新/删除时,这暗示您正在从域模型过渡到数据模型。

Or we never change only a single property but replace the entity with a totally new one instead with the current entity state?



这可能表明您正在对应该对值进行建模的实体建模。

关于c# - DDD,聚合根和实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661591/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com