Я немного запутался с концепцией «Агрегатный корень» в DDD. Теория говорит тогда, что это должен быть совокупный корень, который имеет отношение к текущей операции.DDD: Сколько мне нужно заполнить корни?
Например, у меня есть учетная запись root, которая представляет компанию. У него есть адрес, пользователи, принадлежащие учетной записи, некоторые другие свойства.
И у меня есть несколько страниц; один - управлять общей информацией, такой как имя, адрес электронной почты, телефон ... Другим является сохранение адреса. Еще один, чтобы показать всех пользователей (и отредактировать информацию о пользователе, которая, вероятно, также относится к объекту Account)
В первом случае меня не интересует адрес, на втором мне не важно имя, адрес электронной почты .. ..
Нужен ли мне два отдельных объекта учетной записи или мне нужна только одна учетная запись? (модель может быть более сложным, чем я описал)
Так, например, я могу закончить с классами: BasicAccountInformation, AccountAddress, AccountUsers .... Или только один: Счет, который содержит все данные?
Каков правильный подход DDD? Я думаю, что в одном случае я получу очень сложный класс, содержащий много свойств и логики; или множество простых классов с 2-10 свойствами на класс.
Возможно, вам стоит рассмотреть ваши ограниченные контексты ... –
Я думаю, вы найдете мой [Агрегат Разъяснения] (http://blog.sapiensworks.com/post/2016/07/14/DDD-Aggregate-Decoded- 1) трилогия, полезная для вашей проблемы. Короче говоря, у вас должен быть один агрегат с его корнем, в каждом случае. У вас может быть (должно быть) более одного агрегата, представляющего одну и ту же концепцию, по одному для каждого бизнес-примера команды, связанного с этой концепцией. – MikeSW
Спасибо MikeSW, сообщения в блоге добавляют ясность в эту тему. –