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