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