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

Это не совсем новая идея. На самом деле, можно думать об этом как о методе программирования 700-летней давности.

Рассмотрим два подхода. Один метод требует, чтобы вы указали множество зависимостей. Методы имеют более семи параметров. Происходят сложные махинации, требующие, чтобы все объекты были «просто такими», чтобы функционировать. Класс считает, что все идеально. К сожалению, у этого класса также есть много причин для изменения. Когда какая-либо из его зависимых частей изменяется, класс необходимо перестроить, возможно, перепроектировать. Это делает код довольно хрупким, что приведет к серьезным проблемам с поддержкой в ​​будущем.

Во втором подходе классы и методы остаются небольшими и простыми. Количество зависимостей сведено к минимуму. Поскольку у каждого метода есть только одно задание, у него есть только одна причина для изменения. Чем меньше зависимостей, тем проще тестировать методы.

Как правило, проще — лучше. Класс, который делает меньше предположений, лучше тестируется.