Sobes.tech
Back to questions
Junior — Middle
70

Можете объяснить, что такое module в Dagger и как оно используется для предоставления зависимостей?

Companies where asked
GrowFood

Answer from AI

sobes.tech AI

В Dagger @Module — это класс, который содержит методы, помеченные аннотацией @Provides. Эти методы описывают, как создавать и предоставлять зависимости, которые потом Dagger может внедрять в другие части приложения.

Модуль помогает централизовать логику создания объектов, особенно если их создание сложное или требует параметров. Например, если нужно создать объект с настройками или получить экземпляр из сторонней библиотеки.

Пример модуля:

@Module
public class NetworkModule {
    @Provides
    OkHttpClient provideOkHttpClient() {
        return new OkHttpClient.Builder().build();
    }

    @Provides
    Retrofit provideRetrofit(OkHttpClient client) {
        return new Retrofit.Builder()
                .client(client)
                .baseUrl("https://api.example.com")
                .build();
    }
}

Затем этот модуль подключается к компоненту Dagger, который отвечает за внедрение зависимостей.