💡 Простой пример зависимости vs правильной абстракции ❌ В первой версии Application напрямую создаёт ConsoleLogger.
❌ В первой версии Application напрямую создаёт ConsoleLogger.
Это жёсткая связка: класс невозможно переиспользовать с другим типом логгера.
✔️ В правильной версии вводится интерфейс Logger.
И Application зависит не от конкретного класса, а от абстракции - и логгер передаётся извне.
Это принцип инверсии зависимостей в действии:
клиент выбирает реализацию, а приложение остаётся гибким и расширяемым.