Стремление к структурированию программ оправдано, ведь мы хотим облегчить их модификацию. Однако если внесение изменений в одно определенное место не удается, возникает следующая проблема.
Расходящиеся модификации имеют место тогда, когда один класс часто модифицируется различными способами по разным причинам. Если, глядя на класс, вы отмечаете для себя, что эти три метода придется модифицировать для каждой новой базы данных, а эти четыре метода придется модифицировать при каждом появлении нового финансового инструмента, это может означать, что вместо одного класса лучше иметь два.
При каждой модификации должен изменяться один класс, и вся типизация в новом классе должна выражать эти условия. Тогда каждый класс будет иметь свою зону ответственности.