2013-11-21 3 views
1

У меня есть большая сущность. Объект имеет идентификаторы «Id», «Status» и другие. У меня есть репозиторий для этого объекта. Я хочу изменить статус в одном объекте. Должен ли я получить всю Entity, изменить свойство Status и использовать метод сохранения в репозитории или использовать метод ChangeStatus (id, newStatus) в репозитории?DDD репозиторий и сущность

+0

Первый. ChangeStatus (id, newStatus) в репозитории делает сущность бессмысленной. – Hippoom

+0

Я имею в виду, используя ChangeStatus (id, newStatus) в репозитории. Я не получаю целую Entity, строящую ее из многих таблиц, я просто изменяю одно свойство. – Backs

+0

Но бизнес-правило просачивается в слой сохранения. – Hippoom

ответ

2

Возможно, не требуется модель домена. Вы можете попробовать transaction script, которые напрямую используют SQL для обновления базы данных.

Вам нужна модель домена тогда и только тогда, когда вам нужно нанять специалиста, чтобы понять бизнес. В противном случае это просто дорого buzzwords driven development.

И, кстати, если у вас есть классы сущностей, содержащие данные, которые вам не нужны во время большинства операций, то вы знаете, что вы не определили должным образом context boundaries.

Лучшее определение ограниченного контекста является одним из Эванс:

разделителями применимости той или иной модели. КОНТРОЛЬ КОНКУРСА дает членам команды четкое и общее понимание того, что должно быть последовательным и что может развиваться независимо.

То есть: вы должны разделить экспертные знания предметной области в контекстах, где каждый член имеет однозначный смысл и ограниченный набор ответственности. Если вы это сделаете, вы получите небольшие типы и модули с высокой степенью сцепления a

+0

Хороший совет, спасибо. – Backs

Смежные вопросы