DDD: Должен ли репозиторий проверять объект перед его сохранением?

Простой вопрос: должен ли репозиторий проверять сущность перед ее сохранением? Подтвердить = проверить, соответствуют ли все значения правилам (например, имя содержит ‹ 50 символов и т. д.).


person Community    schedule 16.10.2014    source источник


Ответы (1)


В DDD каждый Агрегат должен нести ответственность за свою достоверность. Никогда не должно быть объекта в недопустимом состоянии. то есть каждый агрегат должен отвергать любую мутацию, которая может привести к недопустимому состоянию.

Цитата из отличной статьи на эту тему Проверка в мире DDD Джим Богард:

Проще говоря, если мы контролируем операционную часть уравнения, с какой стати мы позволяем нашим сущностям переходить в недопустимое состояние? Жизнь станет намного сложнее, если мы начнем использовать свойства «IsValid» для наших сущностей.

person Dennis Traub    schedule 16.10.2014