DIP и DI: в чём разница
Вопрос
Какое утверждение о Dependency Inversion Principle (DIP) и Dependency Injection (DI) верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Это два названия одного и того же принципа проектирования
- DI требует IoC-контейнера, а DIP соблюдается и без него
- DIP запрещает модулям импортировать что-либо напрямую
- DIP это принцип, а DI одна из техник его соблюденияправильный ответ
Разбор
DIP говорит: модули верхнего уровня зависят от абстракций, детали тоже зависят от абстракций. DI это техника: зависимость передают параметром, пропсом или через Context, а не создают внутри. DI можно делать без контейнера, руками. DIP не запрещает импорты вообще: импортировать React или утилиты нормально, речь о зависимостях на изменчивые детали (конкретный HTTP-клиент, аналитику).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Инверсия зависимостей в React-приложении
Следующий вопрос
Когда дублирование лучше абстракции