SOLID: меняй код без цепной реакции
SOLID - пять принципов проектирования от Роберта Мартина, помогающих проектировать границы классов и модулей. Его цель не в том, чтобы увеличить количество интерфейсов. Цель в том, чтобы изменение одной детали не заставляло переписывать всё вокруг - то есть убрать цепную реакцию правок.
Коротко, пять букв отвечают на пять вопросов. S - у части одна причина меняться. O - поведение расширяют, не переписывая существующее. L - реализацию можно заменить без сюрпризов для вызывающего. I - интерфейсы небольшие, клиент не зависит от лишнего. D - код зависит от договорённостей, а не от конкретных деталей. Всё это - способы не дать одному изменению растечься по системе.
SOLID применяют по потребности, а не по расписанию. Небольшой проект редко нуждается в полном архитектурном наборе с первого дня. Используйте конкретный принцип SOLID тогда, когда он устраняет наблюдаемую проблему, а не "чтобы было правильно".
В чём цель SOLID?
Теперь соберём SoC и SOLID вместе на нашем заказе - и увидим, где границы оправданы, а где были бы лишними.