Sobes.tech
Back to questions
Junior — Middle
64

Какие компоненты включены в состав Dagger dependency injection фреймворка?

Answer from AI

sobes.tech AI

Основные компоненты Dagger — это:

  • @Module — класс, который предоставляет зависимости через методы с аннотацией @Provides.
  • @Component — интерфейс, связывающий модули и места внедрения зависимостей. Отвечает за генерацию кода для внедрения.
  • @Inject — аннотация, используемая для обозначения конструкторов, полей или методов, куда нужно внедрить зависимости.
  • @Scope — аннотация для определения области жизни зависимостей (например, Singleton).

Пример:

@Module
class NetworkModule {
    @Provides
    Retrofit provideRetrofit() {
        return new Retrofit.Builder()...build();
    }
}

@Component(modules = NetworkModule.class)
interface AppComponent {
    void inject(MainActivity activity);
}

class MainActivity {
    @Inject Retrofit retrofit;

    void onCreate() {
        DaggerAppComponent.create().inject(this);
    }
}