Sobes.tech
Назад к вопросам
Junior — Middle
71

Каким образом осуществляется внедрение объекта в Dagger для внедрения зависимостей?

Компании, где спрашивали
amoCRMamoCRM

Ответ от нейросети

sobes.tech AI

В Dagger внедрение объекта (dependency injection) происходит через аннотации и генерацию кода.

Основные шаги:

  1. Определение модуля (@Module) — класс, который предоставляет зависимости с помощью методов, помеченных @Provides.

  2. Компонент (@Component) — интерфейс, который связывает модули и места внедрения зависимостей.

  3. Внедрение (@Inject) — поля или конструкторы, куда Dagger будет подставлять зависимости.

Пример внедрения объекта через конструктор:

class Engine {
    @Inject
    Engine() {}
}

class Car {
    private final Engine engine;

    @Inject
    Car(Engine engine) {
        this.engine = engine;
    }
}

@Component
interface CarComponent {
    Car getCar();
}

Здесь Dagger автоматически создаст объект Engine и внедрит его в Car при создании через CarComponent.

Таким образом, внедрение объекта в Dagger осуществляется через аннотацию @Inject и связывается через компоненты и модули.