Back to questions
amoCRM
Junior — Middle
72
Какую структуру имеет инструмент Dagger для внедрения зависимостей?
Companies where asked
Answer from AI
sobes.tech AI
Dagger — это статический фреймворк для внедрения зависимостей в Android и Java. Его структура основана на следующих ключевых компонентах:
- @Module — класс, который предоставляет зависимости через методы, помеченные аннотацией
@Provides. - @Component — интерфейс, который связывает модули и места внедрения зависимостей. Компонент генерирует код для создания и предоставления объектов.
- @Inject — аннотация, которая используется для указания точек внедрения зависимостей (например, конструкторов, полей или методов).
Пример:
@Module
class NetworkModule {
@Provides
OkHttpClient provideOkHttpClient() {
return new OkHttpClient();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
OkHttpClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Теперь client инициализирован Dagger
}
}
Таким образом, Dagger строит граф зависимостей на этапе компиляции, что повышает производительность и безопасность кода.