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