Sobes.tech
Back to questions
Junior — Middle
53

Какими методами реализуется внедрение зависимостей в программный код?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Внедрение зависимостей (Dependency Injection, DI) в Java реализуется несколькими способами:

  1. Через конструктор — зависимости передаются в конструктор класса.
public class Service {
    private final Repository repo;

    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Через сеттеры (Setter Injection) — зависимости устанавливаются через методы-сеттеры.
public class Service {
    private Repository repo;

    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Через интерфейсы (Interface Injection) — класс реализует интерфейс, который позволяет внедрять зависимости.

  2. Использование фреймворков DI — например, Spring Framework, Guice, которые автоматически управляют созданием и внедрением зависимостей через аннотации (@Autowired, @Inject) и конфигурации.

Пример с Spring:

@Service
public class Service {
    private final Repository repo;

    @Autowired
    public Service(Repository repo) {
        this.repo = repo;
    }
}

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