Которая составляет root. Получатель или Стоимость? DDD - PullRequest
0 голосов
/ 07 января 2020

Я создаю приложение для анализа своих расходов. Я хочу реализовать DDD способом. Мои два основных объекта: CounterPart (Получатель / Отправитель) и Расход (Стоимость / Доход)

диаграмма классов

Кажется логичным принять CounterPart в качестве совокупности root но мне нужно выполнить множество действий непосредственно над Расходами, например, пометить их как ежедневные, ежемесячные, ... расходы.

Могу ли я взаимодействовать только по расходам с помощью counterPart?

1 Ответ

0 голосов
/ 08 января 2020

Ваше Aggreggate Root в DDD определяется вашими бизнес-требованиями. Вы должны хорошо разбираться в бизнесе, прежде чем принять решение о совокупном размере root.

В вашем случае между CounterPart и Expense существует отношение один ко многим. Может ли Expense существовать вне CounterPart? Если нет, то, вероятно, имеет смысл иметь CounterPoint в качестве Aggreggate Root.

Если вам нужно манипулировать Expense, вам нужно будет выставить такие операции, как AddExpenseToCounterPart, SetExpenseToDaily et c на CounterPart.

Если, однако, Ваш Domain простой (или anaemic) без каких-либо сложных бизнес-правил. Я бы спросил, почему даже go для DDD?

...