Answers:
读这本书(Evans,2004年)时,“主要由其身份定义的对象称为实体”。此定义与对象是可变的还是不可变的无关。我认为不可变对象成为给定域中的实体的可能性要小得多,因此,确定对象是“值对象”还是“实体”是一种有用的启发式方法,但这不是定义的一部分。
例如,假设您有一个代表员工的实体,该员工可能有也可能没有直接主管。如果您决定将没有直接主管的想法表示为对“空”主管对象的引用,则“空”主管对象被合理地视为一个实体。您可能会使这个“空”对象不可变。
我读过的方法是,值对象是一个本身没有标识的对象,并且与状态更改或不更改无关。这使得实体与值对象之间的区别在于实体具有主键,而值对象则没有;它将具有所属实体的外键。
http://lostechies.com/joeocampo/2007/04/23/a-discussion-on-domain-driven-design-value-objects/
我仍然可以更改值对象的属性,但不需要独立于其实体来进行标识。