Какой метод вы используете для определения совокупных корней в дизайне дисков домена? - PullRequest
3 голосов
/ 17 мая 2010

Когда вы применяете доменно-управляемый дизайн к проекту, как вы определяете совокупные корни?

Например, на стандартном веб-сайте электронной коммерции вы можете сказать, что Заказ является одним, а Пользователь - другим. Но что, если ваши пользователи принадлежат компании? Делает ли это вашу компанию совокупным корнем?

Мне интересно услышать подходы людей к выработке совокупных корней и узнать, как определить плохо выбранные совокупные корни.

1 Ответ

5 голосов
/ 18 мая 2010

Одним из хороших способов определения совокупного корня является использование теста «удалить». В вашем домене, если вы удаляете рут, что с ним удаляется? Таким образом, вы можете идентифицировать владение объектом домена, что является признаком Агрегатов.

Агрегаты также создают границы согласованности, поэтому ваш корень должен «скрывать» агрегированные элементы от остальной части графа объектов, а также проверять их согласованность и инварианты, которые должны храниться. Объект внутри Агрегата содержит ссылки только на корень (не друг на друга). Поэтому, если вы обнаружите что-то подобное в вашей доменной модели, это может означать, что у вас есть Совокупный корень.

...