Встречается на собеседованиях • сегодня
В чем разница между Dependency Injection и Dependency Inversion
Dependency Injection (DI) — это паттерн, при котором зависимости передаются объекту извне (через конструктор, сеттеры или интерфейсы), а не создаются внутри класса. Это упрощает тестирование и уменьшает связанность.
Пример DI через конструктор:
java
class UserService {
private final UserRepository repo;
public UserService(UserRepository repo) {
this.repo = repo; // Внедрение зависимости
}
}Dependency Inversion Principle (DIP) — один из принципов SOLID, который гласит:
- Модули верхнего уровня не должны зависеть от модулей нижнего уровня — оба должны зависеть от абстракций
- Абстракции не должны зависеть от деталей — детали должны зависеть от абстракций
Пример DIP:
java
interface Repository { /* методы */ }
class DatabaseRepository implements Repository { /* реализация */ }
class UserService {
private final Repository repo; // Зависим от абстракции
}DI — это способ реализации DIP. DIP — это принцип проектирования, а DI — паттерн внедрения зависимостей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы