Sobes.tech
Junior — Middle

Explique a finalidade e o funcionamento da anotação @Binds no contexto da injeção de dependências.

sobes.tech IA

Resposta da IA

Аннотация @Binds используется в Dagger (Dependency Injection) для связывания интерфейса с его реализацией без необходимости писать фабричные методы.

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

Пример:

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

Здесь ApiService — интерфейс, а ApiServiceImpl — его реализация. Dagger автоматически создаст биндинг, чтобы при запросе ApiService предоставить ApiServiceImpl.

Это упрощает код, делает его более читаемым и избавляет от необходимости писать методы с @Provides, если реализация уже есть.