gpt4 book ai didi

domain-driven-design - 域驱动设计中实体的每个属性是否都是值对象?

转载 作者:行者123 更新时间:2023-12-04 17:33:36 25 4
gpt4 key购买 nike

我正在阅读“域驱动设计的模式,原理和实践”。该书建议Entity的属性应该是值对象,以便为域的泛在语言建模。我已经看到了许多示例,例如EmailAddressAge,它们仅具有一个字段来建模域概念。我对此感到困惑。 Entity的每个属性都是值对象吗?当我们可以使用普通语言提供的数据类型作为属性时,您可以提供示例吗?

最佳答案

不,并非实体的每个属性都是一个值对象。

实体的属性是以下之一:

  • 如您所知,值对象。值对象表示没有身份的简单值。
  • 基元。实际上,这些只是从DDD角度看的值(value)对象。可以在DDD中使用基元,但请注意不要成为Primitive Obsession的受害者。
  • 实体。一个实体可以包含其他实体。它们之间具有直接(可导航)引用的所有实体都是同一集合的一部分。聚合中的“最顶层”实体称为聚合根。只有根具有全局标识,内部实体只有局部标识。
  • 对其他集合的实体的引用。切勿直接引用这些内容,而要使用ID。 ID本身又可以建模为值对象。
  • 关于domain-driven-design - 域驱动设计中实体的每个属性是否都是值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353325/

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