Где должна происходить проверка: конечная точка или объект? - PullRequest
1 голос
/ 31 марта 2012

Я знаю, что раньше об этом спрашивали более широко, но вот моя конкретная ситуация:

У меня есть конечная точка (API, предоставляемый клиентам / пользователям), которая в конечном итоге вызывает публичные функции-члены некоторых объектов. Должен ли я проверить в конечной точке или в функции-члене?

Кажется, что проверка в конечной точке в этом случае немного проще, потому что тогда вся моя проверка выполняется вокруг моих функций API.

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

Спасибо!

1 Ответ

1 голос
/ 31 марта 2012

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

Полагаю, лучше позволить клиенту создать недопустимый объект и проверить его в самом конце - непосредственно перед его использованием в сервисе bussines.

...