Взаимодействие между объектом и вызывающей стороной должно подчиняться контракту — набору пред- и постусловий. Предварительные условия описывают обязанности вызывающего кода, и если он выполняет их, постусловия описывают гарантии, предоставляемые объектом.
Пред- и постусловия вместе образуют инварианты. Вы можете использовать закон Постела для разработки качественного контракта: чем меньше вы опрашиваете вызывающий код, тем легче ему взаимодействовать с объектом — чем больше гарантий вы можете дать, тем меньше защитного кода будет написано
Роберт Мартин рекомендует. Код, который умещается в голове: эвристики для разработчиков
·
Марк Симан