도메인 기반 디자인 (DDD)을 따를 때 루트 집계가 별도의 집계에서 루트 엔티티가되는 내부 엔티티에 대한 참조를 보유하는 것이 맞습니까?
나는 이것이 파란색 책 에 대한 이 규칙으로 인해 올바르지 않다고 생각합니다 .
AGGREGATE 경계 외부의 어떤 것도 루트 ENTITY를 제외하고 내부의 모든 것에 대한 참조를 보유 할 수 없습니다. 루트 ENTITY는 내부 ENTITIES에 대한 참조를 다른 개체에 전달할 수 있지만 해당 개체는 일시적으로 만 사용할 수 있으며 참조를 유지할 수 없습니다. 루트는 VALUE OBJECT의 사본을 다른 오브젝트에 전달할 수 있으며, VALUE 일 뿐이고 더 이상 AGGREGATE와 연관되지 않기 때문에 어떤 일이 발생해도 상관 없습니다.
루트 집계가 다른 루트 집계에 대한 참조를 보유하는 경우 전자의 경계가 위반되고 집계의 전체 개념이 손상되므로 루트 집계가 다른 루트 집계에 대한 참조를 보유해야 할 필요가 있다고 생각되면 다른 엔티티 를 만들려면 다른 루트 엔티티와 동일한 멤버 중 일부를 공유하지만이 책의 다른 규칙에 따라 글로벌 ID는 없습니다.
루트 단체는 글로벌 정체성을 가지고 있습니다. 경계 내부의 엔티티는 AGGREGATE 내에서만 고유 한 로컬 ID를 갖습니다.
나는 이것이 올바른 길이라고 생각하지만 반복적이고 중복 적이라고 느끼기 때문에 (순수한 OOP와 함께 DDD의 맥락에서 벗어 났을 때) 나는 약간의 피드백을 요구하고 있습니다.