Назад к вопросам
Junior — Middle
91
В каких ситуациях рекомендуется применять модуль Provides в Dagger для предоставления зависимостей?
Ответ от нейросети
sobes.tech AI
Аннотация @Provides в Dagger используется внутри модулей для определения методов, которые создают и предоставляют зависимости. Рекомендуется применять @Provides в следующих ситуациях:
- Когда создание зависимости требует сложной логики или конфигурации, которую нельзя выразить через конструктор с
@Inject. - Если нужно предоставить интерфейс или абстракцию, а реализация создаётся внутри метода.
- Для создания объектов, которые не могут быть аннотированы
@Inject(например, классы из сторонних библиотек). - Когда требуется контролировать жизненный цикл или параметры создаваемого объекта.
Пример:
@Module
public class NetworkModule {
@Provides
OkHttpClient provideOkHttpClient() {
return new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.build();
}
@Provides
Retrofit provideRetrofit(OkHttpClient client) {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.client(client)
.build();
}
}
Здесь @Provides методы создают и настраивают объекты, которые нельзя просто аннотировать @Inject.