2017-09-20 1 views
0

엔티티 및 값 객체의 개념에 어려움을 겪고 있습니다. 개체와 값 개체의 차이점에 대해 읽었지만 지식을 예제에 전달할 수 없습니다.하나의 엔티티 및 값 객체를 사용하여 병합 작성하기

내가 aggreagte "소매"

소매 업체는 "이름", "ADRESS"(거리, 우편 번호, 국가) 및 GPS 좌표를 속성 "ID"가를 만들 싶습니다 (위도, 경도) "집계 루트"는 자격있는 "소매 업체"입니다.

여기에 value 객체 란 무엇이며 entitiy 속성은 무엇입니까? 주소가 엔티티 "소매 업체"의 속성입니까, 아니면 값 객체 인 "주소"입니까? "GPS"는 값 객체 "adress"의 속성 또는 속성에 의한 값 객체입니까?

이것을 구성하는 유용한 방법은 무엇입니까? 내 프로젝트에서 어떻게 구성되어 있는지 예제를 추가했습니다. 값 객체에 속성을 추가하는 대신 값 객체에 주소를 추가하는 값은 무엇입니까?

aggregate retailer

+0

값 개체는 Address, Coordinate, Money 등과 같은 변경 불가능 개체를 나타냅니다. 반면에 엔터티는 사용자가 언급 한 소매 업체와 마찬가지로 변경 가능한 개체이며 주소는 변경할 수 있습니다. 집계는 논리적 인 개념으로, 엔티티/값 객체의 클러스터. 가치 객체, 불변의 집계로 구성된 집계를 가질 수도 있습니다 ... 일부 국가에서는 인보이스가 변경 될 수 없으므로 변경이 불가합니다. –

답변

1

값 객체는 여기에 무엇이며, 실재물의 속성은 무엇인가? 주소가 엔티티 "소매 업체"의 속성입니까, 아니면 값 객체입니까? "GPS"는 값 객체 "adress"의 속성 또는 속성에 의해 값 객체입니까?

이것은 모두 속성이며 value object입니다. 속성은 객체 지향적 인 관점에서 나온 것입니다. DDD 관점의 value object : 동작이있는 데이터, 변경 불가능.

GPSlatitudelongitude 프리미티브 값을 포함하는 값 개체 여야합니다.

주소 개체를 특성 "소매 업체"에 추가하는 대신 주소 개체를 추가하는 값은 무엇입니까?

장점은 value object가 부모 엔티티의에서 책임을 제거 모든 데이터와 동작을 캡슐화하는 것입니다. 또한, 그것의 속성이 오직 하나의 의미만을 가진다는 사실을 더 직관적으로 표현합니다 (위도와 경도는 항상 함께 설정되어야합니다).

+0

자체 가치 객체에서 소매 업체의 이름을 모델링하는 것이 합리적입니까? – Johanna

+0

이름이 바뀌기 때문에 이해가 안된다고 가정합니다 – Johanna

+0

@ 조한나 아마도 특별한 행동이 없기 때문에 아닙니다. –

관련 문제