Сколько у меня совокупных корней

Это мои сущности и отношения:

введите описание изображения здесь

НИКАКАЯ сущность не может существовать без сущности A. Когда A удаляется, все остальные сущности также будут удалены. Следовательно, A - это мой совокупный корень.

Но я не уверен,

1.) B is also an aggregate root for entity C,D and E 
2.) E is also an aggregate root for entity F

1.) C,D and E can not exist without B being created
2.) F can not exist without E being created

Имею ли я теперь 3 совокупных корня и, следовательно, создаю 3 репозитория?


person Elisabeth    schedule 28.04.2013    source источник
comment
AR появляются естественно при моделировании домена. У вас есть реляционная схема БД. Ограниченный контекст (BC) решает, где начинается и заканчивается агрегат. Также очень часто используется одно и то же имя для объекта в разных BC, но с немного другой структурой, то есть реализация объекта Product может варьироваться от (ID, Name) в одном BC до полного Product с большим количеством деталей в других BC. Будьте очень осторожны при определении агрегатов и их корней, неправильное моделирование объектов предметной области - САМЫЙ РАСПРОСТРАНЕННЫЙ НЕДОСТАТОК DDD.   -  person MikeSW    schedule 29.04.2013


Ответы (1)


Без дополнительной информации о вашем домене невозможно сделать предложение относительно общих границ. Отношения между сущностями не так важны, как поведение, связанное с сущностями. Связь между сущностями не переводится автоматически в ссылку на объект; отношения также могут быть реализованы как репозитории.

Агрегат - это граница согласованности. Другими словами, он агрегирует состояние, которое должно оставаться согласованным после выполнения связанного поведения. В вашем случае вполне может быть, что каждая из этих сущностей является совокупностью. Взгляните на эффективный агрегатный дизайн, чтобы лучше понять, как разделить домен на агрегаты.

person eulerfx    schedule 28.04.2013