Sobes.tech
Back to questions
Junior — Middle
72

Какова цель использования аннотации Binds в Dagger для зависимости инжекции?

Companies where asked
СБЕРСБЕР
trendtech

Answer from AI

sobes.tech AI

Аннотация @Binds в Dagger используется для связывания интерфейса с его реализацией без необходимости писать фабричный метод вручную. Она позволяет указать, что при запросе зависимости интерфейса нужно предоставить конкретный класс, реализующий этот интерфейс.

Преимущества @Binds:

  • Компактность: не нужно писать тело метода, достаточно объявить абстрактный метод.
  • Улучшенная читаемость и поддерживаемость кода.
  • Позволяет Dagger генерировать более эффективный код.

Пример:

@Module
abstract class NetworkModule {
    @Binds
    abstract ApiService bindApiService(ApiServiceImpl impl);
}

Здесь при инжекции ApiService будет использоваться ApiServiceImpl.