2010-07-20 3 views

ответ

1

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

Самый лучший и самый простой способ получить ваши инварианты - начать с определения того, что должен делать ваш класс [или тест тестов, если вы делаете TDD], и выяснить, какие условия должны быть истинны для этих спецификаций для правильной реализации. Другими словами, вы «подталкиваете свои спецификации через свой код». Когда вы это сделаете, инварианты появятся в качестве камней преткновения, с которыми вы сталкиваетесь.

Обратите внимание, что иногда «проталкивание» означает прямое распространение предварительных условий, иногда это означает обратное распространение пост-условий. Чаще всего и то, и другое.