Встречается на собеседованиях • сегодня

Какие знаешь варианты реализации инверсии управления

В Java инверсия управления (IoC) реализуется через:

  1. Dependency Injection (DI)
    Внедрение зависимостей через конструктор, сеттеры или поля. Пример:
    java
    @Service
    public class UserService {
        private final UserRepository repository;
        
        @Autowired
        public UserService(UserRepository repository) {
            this.repository = repository;
        }
    }
  1. Service Locator
    Паттерн, где зависимости запрашиваются из центрального реестра:

    java
    UserRepository repo = ServiceLocator.getService(UserRepository.class);
  2. Фабрики и абстрактные фабрики
    Создание объектов через фабричные методы:

    java
    public class UserFactory {
        public static UserService createService() {
            return new UserService(new UserRepository());
        }
    }
  3. Контексты IoC-контейнеров
    Использование Spring, Guice или CDI для управления бинами. Spring, например, использует аннотации (@Component, @Autowired) или XML-конфигурацию.

DI через конструктор — наиболее предпочтительный способ, так как обеспечивает неизменяемость и явное объявление зависимостей.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы