Назад к вопросам
Junior — Middle
82
Можешь ли ты перечислить основные компоненты и концепции, используемые в Dagger для внедрения зависимостей?
Компании, где спрашивали
IBS
Ответ от нейросети
sobes.tech AI
Основные компоненты и концепции Dagger для внедрения зависимостей:
- @Component — интерфейс, который связывает модули и места внедрения зависимостей. Он генерирует код для предоставления объектов.
- @Module — класс, который содержит методы с аннотацией
@Provides, описывающие, как создавать зависимости. - @Provides — аннотация для методов внутри модуля, которые возвращают объекты-зависимости.
- @Inject — аннотация, которая указывает, куда нужно внедрять зависимости (конструкторы, поля, методы).
- Scope — аннотации, например,
@Singleton, которые определяют область жизни объектов.
Пример:
@Module
class NetworkModule {
@Provides
OkHttpClient provideOkHttpClient() {
return new OkHttpClient();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}
Dagger генерирует реализацию AppComponent, которая умеет создавать и внедрять зависимости, определённые в модулях.