Здравствуйте, Batiskaf, Вы писали:
А>>Все данные вводимые пользователем проверяются сразу при их вводе (вот где используютеся код constraine класса SomeClass, напр. is_valid_prop2()), в случае неудачной проверки, выводится сообщение, где предлагается ввести корректные данные, или выбрасывается исключение, зависит от типа приложения. Коду SomeClass неважно где его будут использовать, поэтому он не знает что делать в случае неверного prop2_: исключение, код ошибки, сообщение... Задача разработчика класса SomeClass предоставить набор методов валидации данных; задача разработчика приложения, использующего SomeClass, пропускать все входные данные для SomeClass, вводимые пользователем, через соответствующие функции валидации, и написать код для обработки некорректных входных данных.
B>да, только сообщениями пользоваться не стоит, SomeClass может использоваться в самых разных средах, с разными типами аллертов. Принимать решение о выбрасывании сообщений должен пользовательский код, если он может показать месаджбокс или распечатать html, или бибикнуть на экране деньгомата в банке, в зависимости от системы.
Так вроде и написано
>> Коду SomeClass неважно где его будут использовать, поэтому он не знает что делать в случае неверного prop2_: исключение, код ошибки, сообщение...