DDD에서 중첩 골재를 다루고 있습니다
-
18-09-2019 - |
문제
방금 DDD를 시작하고 있으며 데이터의 관계 적 특성을 수용하는 방법을 알아내는 데 어려움이 있습니다. 나는 내 집계 루트로 간주 될 것이라고 믿는 것을 가지고 있지만 집계는 또한 그 자체의 집계를 가지고 있습니다. Demeter의 법칙을 위반하고 싶지 않기 때문에, 나는 이것에 대해 생각하는지 궁금하고 일부 DDD 전문가가 통찰력을 제공 할 수 있기를 바라고 있습니다.
내 집계의 근본은 나의 것입니다 Account
수많은 집계가있는 물체 AccountElement
개인의 논리적 그룹 인 엔티티 ProductComponent
엔티티.
an AccountElement
컨텍스트 외부 Account
의미가 없으므로 내 결론에 편안합니다. Account
객체는 내 집계 루트이며, 그 엔티티가 집계가있는 것을 기대합니다. Elements
재산. 그건 ProductComponent
내가 혼란 스러웠던 컬렉션. 이 집계는 외부의 의미가 없습니다 AccountElement
, 그리고 진짜 외부에는 의미가 없습니다 Account
.
나는 개인에 접근해야한다고 생각하지 않습니다 ProductComponent
다음과 같이 내 길을 점령하여 객체
var reference = account.Elements(0).ProductComponents(0).ReferenceCode;
그러나 동시에 (도메인 관점에서) 액세스하는 것은 의미가 없습니다. ProductComponent
직접 Account
실재.
나는 이것이 내 도메인에 대한 지식없이 이해하기가 조금 어렵다고 확신하지만, 좋은 피드백을 얻기에 충분하기를 바라고 있습니다.
해결책
Robert가 연결된 기사는 좋은 것입니다. AccountElement의 맥락에서만 ProductComponent가 존재하는 경우 계정의 맥락에서만 존재하는 경우 ProductComponent가 계정의 맥락에있는 확장에 의해 존재합니다.