엔터티와 Value 객체의 차이점에 대한 수많은 게시물을 읽었으며 적어도 개념적으로 두 가지가 어떻게 다른지 이해한다고 생각하지만 이러한 게시물 중 일부에서 저자는 특정 도메인 개념을 단순히 VO라고 생각합니다. 는 불변입니다 (따라서 그 상태는 적어도 특정 도메인 모델 내에서 변경되지 않습니다).
개체의 상태가 특정 도메인 모델 내에서 변경되지 않는 경우이 개체가 개체가되어서는 안된다는 것에 동의하십니까? 왜?
엔터티와 Value 객체의 차이점에 대한 수많은 게시물을 읽었으며 적어도 개념적으로 두 가지가 어떻게 다른지 이해한다고 생각하지만 이러한 게시물 중 일부에서 저자는 특정 도메인 개념을 단순히 VO라고 생각합니다. 는 불변입니다 (따라서 그 상태는 적어도 특정 도메인 모델 내에서 변경되지 않습니다).
개체의 상태가 특정 도메인 모델 내에서 변경되지 않는 경우이 개체가 개체가되어서는 안된다는 것에 동의하십니까? 왜?
답변:
이 책 (Evans, 2004)을 보면, "본질적으로 정의 된 대상을 ENTITY"라고합니다. 이 정의는 객체가 변경 가능한지 여부와 무관합니다. 불변 객체가 주어진 도메인의 엔티티 일 가능성 은 훨씬 낮 으므로 객체가 "값 객체"인지 "엔티티"인지를 결정하는 데 유용한 휴리스틱이지만 정의의 일부는 아닙니다.
예를 들어, 직속 상사를 갖거나 갖지 않을 수있는 직원을 대표하는 법인이 있다고 가정 해 봅시다. 직접 수퍼바이저가 "널"수퍼바이저 개체에 대한 참조가되지 않는다는 아이디어를 나타내기로 결정한 경우 "널"수퍼바이저 개체는 엔티티로 간주됩니다. 그리고이 "널 (null)"객체를 변경할 수 없게 만들 수 있습니다.
내가 읽은 방법은 가치 객체가 자신과 정체성이 없으며 상태가 변경되거나 변경되지 않는 객체라는 것입니다. 이것은 엔터티와 기본 키가있는 값 개체 간의 차이를 만드는 반면 값 개체는 그렇지 않습니다. 여기에는 속한 엔티티에 대한 외래 키가 있습니다.
http://lostechies.com/joeocampo/2007/04/23/a-discussion-on-domain-driven-design-value-objects/
여전히 값 개체의 속성을 변경할 수 있지만 해당 개체와 독립적으로 식별 될 필요는 없습니다.