Back to questions
Junior — Middle
64
Какое различие существует между компонентами и модулями в Dagger?
Companies where asked
NordClan
Answer from AI
sobes.tech AI
В Dagger модули (Modules) — это классы, которые предоставляют зависимости через методы, помеченные аннотацией @Provides. Они описывают, как создавать объекты, необходимые для внедрения.
Компоненты (Components) — это интерфейсы, которые связывают поставщиков зависимостей (модули) с точками внедрения (например, полями или конструкторами). Компонент отвечает за создание и предоставление объектов, определённых в модулях, и управляет временем жизни этих объектов.
Проще говоря:
- Модуль — это фабрика, которая знает, как создавать зависимости.
- Компонент — это мост между модулями и классами, куда эти зависимости внедряются.
Пример:
@Module
class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder().baseUrl("https://api.example.com").build();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}