Domain driven design 为什么不应该';t值对象引用其所有者?
我读过,在大多数情况下,值对象不应该引用其所有者 a) 我的解释是,关联应该是单向的,只能从所有者到VO进行遍历 b) 为什么VOs不应该提及他们的所有者Domain driven design 为什么不应该';t值对象引用其所有者?,domain-driven-design,Domain Driven Design,我读过,在大多数情况下,值对象不应该引用其所有者 a) 我的解释是,关联应该是单向的,只能从所有者到VO进行遍历 b) 为什么VOs不应该提及他们的所有者 谢谢这是一种代码气味,可供参考其所有者,因为它表明违反了以及。根据定义,值对象是一个除了保存值之外几乎不做其他事情的对象。因此,它是不可变的,没有大多数逻辑(业务逻辑、生命周期逻辑等)。我遵循这一原则,因为我希望我的POJO设计独立于使用它们的客户机,并在代码级别将其与客户机分离。这样,它们就变得便携了 a) 我把这理解为,联想应该是 单向,
谢谢这是一种代码气味,可供参考其所有者,因为它表明违反了以及。根据定义,值对象是一个除了保存值之外几乎不做其他事情的对象。因此,它是不可变的,没有大多数逻辑(业务逻辑、生命周期逻辑等)。我遵循这一原则,因为我希望我的POJO设计独立于使用它们的客户机,并在代码级别将其与客户机分离。这样,它们就变得便携了 a) 我把这理解为,联想应该是 单向,只能从所有者到VO 对 b) 为什么VOs不应该提及他们的所有者
- 因为它不需要。值对象是简单的对象,VO中的潜在行为通常只与自身或自身类的另一个实例相关
- 因为值对象可以包含在多个所有者类型中,可能包含在多个聚合中
- 因为值对象相等是基于所有字段相等,并且你不希望仅仅因为一个奇怪的所有者字段,John眼睛的绿色被认为与Laura眼睛的绿色有任何不同
- 因为无论如何都不鼓励双向关联(即使在实体中)