Я бы сказал, что это зависит от того, что вы подразумеваете под "бизнес-уровнем".Если это логически разделенный код, выполняющийся в том же процессе, то я полагаю, что вы можете доверять проверке, выполняемой на уровне представления (если это проверка на стороне сервера).
Однако, если бизнес-уровеньвозможно, абстрагируясь за какой-либо службой или по какой-либо причине, работающей как отдельный процесс или на отдельном сервере, я бы укрепил это разделение, рассматривая уровень представления как клиент и повторно проверяя на бизнес-уровне.(Идея заключается в том, что такое разделение обычно выполняется, когда целью является совместное использование этого бизнес-уровня несколькими клиентами, возможно, написанными несколькими разработчиками. Поэтому вам следует относиться к ним так же, как к любому доступу клиент-сервер.)
По сути, каждый раз, когда одно «приложение» получает ввод, проверяйте его.Если это происходит из браузера конечного пользователя, проверьте его.(Проверка на стороне клиента на самом деле не «проверка», а скорее хорошая функция для улучшения пользовательского интерфейса и уменьшения нагрузки на ресурсы сервера.) Если это происходит из другого внутреннего приложения, проверьте его.
Есливы намерены позже разбить слои на несколько внутренних сервисов, затем вы можете продолжить и включить эту проверку сейчас просто для хорошей меры, предполагая, что она не представляет существенного снижения производительности.То есть, если удобнее рассматривать слои как совершенно отдельные и поддерживать как можно более строгое разделение интересов.Как правило, объекты должны все равно сами себя проверять.Так что, если вы собираетесь использовать в своем коде высоко объектно-ориентированный подход, вам нужно его сохранить.