Senior
47
Šta je inverzija kontrole (IoC), kako se ovaj princip implementira i čemu služi?
Компаније где су питане
Сбер Право
Одговор од АИ
sobes.tech АИ
Инверсия управления (IoC) — это принцип проектирования, при котором управление созданием и связыванием объектов передаётся внешнему контейнеру или фреймворку, а не реализуется внутри самих компонентов. Это позволяет снизить связанность компонентов и повысить гибкость системы.
В Java IoC часто реализуется через внедрение зависимостей (Dependency Injection, DI). Вместо того чтобы класс самостоятельно создавал свои зависимости, они передаются ему извне, например, через конструктор, сеттеры или интерфейсы.
Для чего нужен IoC:
- Упрощает тестирование, так как зависимости можно подменять моками.
- Повышает модульность и переиспользуемость кода.
- Облегчает управление жизненным циклом объектов.
Пример внедрения зависимостей через конструктор:
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
public void perform() {
repository.save();
}
}
// Внешний контейнер создает и передает зависимости
Repository repo = new RepositoryImpl();
Service service = new Service(repo);