DDD Совокупный вопрос проектирования - PullRequest
0 голосов
/ 18 августа 2011

Вот упрощенная версия того, что я пытаюсь сделать.

У меня есть история, которая просматривается пользователем, и этот пользователь может добавить ее в свой бюллетень. Бизнес-правило - это история, которая может принадлежать ТОЛЬКО избирательному бюллетеню, и бюллетень не может содержать более 12 историй.

Прямо сейчас у меня есть Story в качестве совокупного корня, который содержит множество поведений и переходов между состояниями. До сих пор рецензент не входил в картину. Мне трудно моделировать этот дизайн. Есть ли у меня два агрегата Story и StoryReviewer?

Любые идеи были бы великолепны!

1 Ответ

0 голосов
/ 19 августа 2011

Если я вас правильно понимаю, история может находиться в состоянии «не просмотрена», другими словами, история существует сама по себе, а затем, возможно, проверяется и добавляется в бюллетень пользователя. Если это так, то похоже, что у вас есть два совокупных корня: Пользователь и История.

Если это неправда и история всегда принадлежит бюллетеню какого-то пользователя и никогда не может быть переназначена от одного пользователя другому пользователю, то вам может понадобиться только один совокупный корень: пользователь. А Story - это просто сущность в совокупности пользователей.

В любом случае само голосование, вероятно, является объектом в совокупности User / StoryReviewer. Избирательное голосование кажется хорошим местом для обеспечения соблюдения правила 12 бюллетеней на голосование.

...