2

在领域驱动设计 (DDD) 中,ValueObject 具有以下定义

值对象是描述某些特征或属性但不带有身份概念的对象。

假设我有“客户”实体和“订单”实体。订单与客户相关,因此通常我会在订单类中添加字段 ClientId,因为我可能不会引用客户实体本身。到现在为止还挺好...

现在我想知道是否可以创建一个值对象 ClientInfo,其中将包括客户端名称、客户端状态以及 ClientId?ClientInfo 将是不可变的,只有 clientName、clientStatus 和 clientId 的 getter。

所以你有了它,一个带有实体标识符的值对象。这违反了值对象的定义,还是我在这里安全?

4

1 回答 1

6

引用实体标识符的值对象很好。如果您有两个具有相同信息的 ClientInfo 对象,它们将完全可以互换。它们是值,就像字符串或整数一样。

于 2012-10-09T12:10:47.197 回答