2010-05-16 3 views
3

도메인 기반 디자인을 프로젝트에 적용 할 때 어떻게 집계 루트를 식별합니까?도메인 드라이브 디자인에서 집계 루트를 식별하는 데 어떤 방법을 사용합니까?

예를 들어 표준 전자 상거래 웹 사이트에서 주문이 하나이고 사용자가 다른 것으로 말할 수 있습니다. 귀하의 사용자가 회사에 속해 있다면? 그게 회사를 총체적인 루트로 만들어 주는가?

저는 집계 루트를 만드는 사람들의 접근 방식과 엉성하게 골라낸 골재를 찾는 방법에 관심이 있습니다.

답변

5

집합 루트를 식별하는 좋은 방법 중 하나는 "삭제"테스트를 사용하는 것입니다. 도메인에서 루트를 삭제하면 삭제 된 항목은 무엇입니까? 이렇게하면 집계의 특성 인 도메인 개체 소유권을 식별 할 수 있습니다.

또한 집계가 일관성 경계를 작성하므로 루트는 집계 된 요소를 나머지 개체 그래프에서 "숨겨야"하며 일관성과 불변성을 확인해야합니다. Aggregate 내부의 객체는 루트에 대해서만 참조를 유지합니다 (서로가 아닌). 따라서 도메인 모델에서 이와 같은 상황을 발견하면 집계 루트를 제안 할 수 있습니다.

+0

맞아요. 판매를하고, 프로필을 업데이트하고, e.t.c를 업데이트하는 등의 일련의 작업을 수행 할 수있는 User 엔티티가 있습니다. 그것은 User가 root aggregate 인 것처럼 보입니다. 그러나 회사에는 일련의 사용자가 있습니다. 회사를 삭제하면 사용자가 삭제됩니다. 그것은 회사를 총체적인 루트로 만들지, 아니면 둘 다 뿌리를 집계하는 것입니까? – Robert

+0

@Robert 여러 협회마다 Aggregate를 사용할 필요는 없습니다. 합성도. 귀하의 필요에 가장 잘 맞는 것은 귀하에게 달려 있습니다. 집계는 도메인 모델을 단순화하는 데 사용되지만 사용하지 않아도됩니다. –

관련 문제