Что такое dependency-inversion-principle?
Используйте, когда класс создает свои собственные зависимости. Используйте при создании конкретных реализаций внутри класса. Используйте, когда вам советуют избегать внедрения зависимостей для простоты. Источник: yanko-belov/code-craft.