Junior — Middle
Објасните сврху и рад анотације @Binds у контексту Dependency Injection.
sobes.tech АИ
Одговор од АИ
Аннотация @Binds используется в Dagger (Dependency Injection) для связывания интерфейса с его реализацией без необходимости писать фабричные методы.
Она применяется в абстрактных модулях и позволяет указать, что при запросе зависимости интерфейса нужно предоставить конкретную реализацию.
Пример:
@Module
abstract class NetworkModule {
@Binds
abstract ApiService bindApiService(ApiServiceImpl impl);
}
Здесь ApiService — интерфейс, а ApiServiceImpl — его реализация. Dagger автоматически создаст биндинг, чтобы при запросе ApiService предоставить ApiServiceImpl.
Это упрощает код, делает его более читаемым и избавляет от необходимости писать методы с @Provides, если реализация уже есть.