Chr*_*Mir 2 java domain-driven-design
在领域驱动设计 (DDD) 中,ValueObject 具有以下定义
值对象是描述某些特征或属性但没有身份概念的对象。
假设我有“客户”实体和“订单”实体。订单与客户相关,所以通常我会在订单类中添加字段 ClientId,因为我可能不会引用客户实体本身。到现在为止还挺好...
现在我想知道是否可以创建一个值对象 ClientInfo,其中将包含客户端名称、客户端状态以及 ClientId?ClientInfo 将是不可变的,只有 clientName、clientStatus 和 clientId 的 getter。
所以你有了它,一个带有实体标识符的值对象。这是否违反了值对象的定义,还是我在这里安全?
引用实体标识符的值对象很好。如果您有两个具有相同信息的 ClientInfo 对象,它们将完全可以互换。它们就像字符串或整数一样是值。