到目前为止,我已经知道实体对象具有ID,而值对象没有,但在最常见的示例中,您拥有附加了地址值对象的person实体。创建单独的地址对象而不仅仅是在Person Entity中保留地址属性有什么大的优势?
答案 0 :(得分:9)
除了已经提到的内容之外,Greg Young还有很大的优势,因为它们是不可变的,你可以在创建时验证它们,而不用再担心验证。如果状态无法更改,那么您知道它始终有效。
答案 1 :(得分:5)
不要忘记“没有id”并不是值对象和实体之间的唯一区别,不可变也是非常重要的。
答案 2 :(得分:1)
将其视为可重用的组件。您可以将它变成家庭住址,工作地址而无需额外的努力。您可以使用它将其他系统与人员实体分离。假设您介绍一个商业实体。它也会有一个地址。
与此主题相关的是另一个重要主题:构成与继承