2012-02-16 2 views
5

도메인 중심 디자인을 사용하여 도메인 모델 내에서 집계 루트를 식별하는 방법에 관한 문제가 발생했습니다.도메인 모델에서 집계 루트를 식별하는 방법은 무엇입니까?

내가 가지고있는 다음과 같은 세 가지 클래스, 간단한 할 일 목록 모델링 :

  1. 업데이트가 만의 컨텍스트 내에서 존재합니다

    public class List { 
        private IList<Task> _tasks; 
    
        public List() { ... } 
        public string Name { get; set; } } 
        public IEnumerable<Task> Tasks() { ... } 
        public void AddTask(string descr) { ... } 
        public void RemoveTask(Task t) { ... } 
        public Task GetRandomTask() { ... } 
    } 
    
    public class Task { 
        private IList<Update> _updates; 
    
        public Task(string descr) { ... } 
    
        public string Description { get; } 
        public bool IsClosed { get; } 
        public IEnumerable<Update> Updates() { ... } 
        public void AddUpdate(string descr, bool close) { ... } 
    } 
    
    public class Update { 
        public Update(string descr) { ... } 
        public string Description { get; } 
    } 
    

    내가 모델에 대해 다음 사항을 진술 할 수 있습니다 태스크.

  2. 작업은 목록의 컨텍스트 내에서만 존재합니다.

목록은 유일한 집계 루트 인 것처럼 보입니다. (사실 내 데이터 액세스 계층은 List 객체의로드/저장 만 허용합니다.) 그러나 Task 클래스의 현재 존재하는 UI를 List 클래스에 푸시 할 수있는 방법을 알 수 없습니다. 현재 List 클래스는 Task 객체에 대한 참조를 전달하여 호출자가 수정할 수있게합니다.

이는 작업이 포함 된 목록에 종속되어 있어도 작업이 집계 루트임을 의미합니까?

미리 감사드립니다.

+1

관련 질문 : [DDD : 집계 루트 식별] (http://programmers.stackexchange.com/questions/150196/). –

답변

5

Vaughn Vernon은 전체 디자인에 대해 3 part article을 가지고있어 문제를 밝힐 수 있습니다.

+0

유용한 링크에 감사드립니다. – rob

관련 문제