DDD值对象,引用实体标识符

时间:2012-10-09 12:06:24

标签: java domain-driven-design

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

  

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

假设我有'客户'实体和'订单'实体。订单与客户端相关,因此通常我会在Order类中添加字段ClientId,因为我可能不会引用客户端实体本身。到目前为止一切都很好......

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

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

1 个答案:

答案 0 :(得分:4)

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