Проверка в доменной модели? - PullRequest
3 голосов
/ 03 апреля 2012

Я разработал модель предметной области, следуя методологии DDD.Я хотел бы добавить подтверждение.

Считаете ли вы хорошей идеей добавление проверки на уровне модели домена?Если нет, где я должен проверять мои доменные объекты?

Спасибо

Ответы [ 3 ]

8 голосов
/ 03 апреля 2012

Если правила проверки являются частью бизнес-домена, они принадлежат в модели.

Совокупный корень отвечает за поддержание инвариантов, охватываемых им, поэтому проверка их подпадает под его ответственность.

Если вы обнаружите, что правила проверки очень сложны, вы можете создать службу проверки, которая будет использоваться объединенным корнем для этой функции.

2 голосов
/ 03 апреля 2012

Это зависит от типа вашей проверки.

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

Если вы создаете интернет-магазин, и Заказ недействителен, когда не все товары есть в наличии, значит, у вас есть реальная проверка домена.

Домен-управляемый дизайн 101 имеет несколько хороших примеров, начиная со слайда 44.

1 голос
/ 12 апреля 2012

Seealso: http://lostechies.com/jimmybogard/2009/02/15/validation-in-a-ddd-world.

«Вместо ответа на вопрос« действительно ли этот объект действителен », попробуйте ответить на вопрос« Можно ли выполнить эту операцию? »."

...