Здравствуйте, Cynic, Вы писали:
C>Предположим я реализовал некоторый класс, у которого есть внутреннее поле значение которого не должно выходить за определённые пределы и мне нужно как то обработать во внешнем классе ситуацию когда это поле выходит за границы допустимого диапазона. Тут возможно два варианта. Либо я реализую в искомом классе исключение и обрабатываю его во внешнем, либо я создаю у класса поле возвращающее контролируемое значение и перед выполнением операции которая потенциально может вывести контролируемое значение за пределы допустимого диапазона, проверяю его.
C>Вопрос в том, на сколько затратно выбрасывание исключение, по сравнению с проверкой значения поля перед выполнением операции?
C>p/s
C>Исходим из того, что при проверке значения выполняется простая операция, типа больше ли одно число другого, а не сравнение классов.
Если использовать проектирование по контракту, должно быть и то и другое. Что бы это не было слишком накладным, есть смысл проверять вызовы только внешних систем к разрабатываемой. Подробнее тут:
http://rsdn.ru/article/design/Code_Contracts.xmlАвтор(ы): Тепляков Сергей Владимирович
Дата: 13.09.2010
Проектирование по контракту – это мощная техника разработки программного обеспечения (ПО), которая путем формализации взаимоотношений между компонентами позволяет создавать качественное, надежное и расширяемое ПО. В данной статье рассматриваются теоретические аспекты проектирования по контракту, изначально изложенные Бертраном Мейером, которые позволят понять всю ценность этой методики при разработке ПО.