Решив сделать его корнем совокупности или оставить его в качестве члена совокупного корня.

Я помню в книге Эрика Эванса о DDD, если сущность может быть понята только в терминах другой сущности (корень совокупности), то сделайте ее "простой" сущностью (членом AR).

Мой вопрос: что именно означает "можно понять самому"? Какие вопросы я должен задать себе, чтобы узнать, может ли сущность быть понята сама по себе или нет?

2 ответа

Мой вопрос: что именно означает "можно понять самому"?

Если он может быть создан сам по себе или он должен быть создан в контексте другого.

Какие вопросы я должен задать себе, чтобы узнать, может ли сущность быть понята сама по себе или нет?

"Придерживаются ли все бизнес-инварианты, если я напрямую изменяю эту сущность или, на самом деле, мне нужно выполнить проверку (т.е. if заявление) о вычислении на совокупности других связанных объектов, чтобы убедиться, что конкретное бизнес-правило проверено?"

Другой вопрос: "Есть ли у меня вся информация в этой организации для проверки всех бизнес-правил?"

Если у вас есть класс, у которого нет причин существовать, кроме как быть частью другого, тогда это не AR. Архетипическим примером является Order а также Orderitem, Вы никогда не хотите отслеживать жизненный цикл и OrderItem, На самом деле, вы, вероятно, хотели бы смоделировать OrderItem как объект стоимости. Не все из этих концепций в вашей области обязательно будут настолько очевидными.

Что касается поста Уди, на который вы ссылались: возможность создания AR из другого будет зависеть от того, является ли этот AR частью вашего ограниченного контекста. Кроме того, в настоящее время я предпочитаю возвращать события из моего домена, а не поднимать их изнутри домена.

Другие вопросы по тегам