Junior — Middle
Как се запазва зависимостта Hof, маркирана с анотация Singleton, в рамките на инжектирането на зависимости Dagger?
sobes.tech AI
Отговор от AI
В Dagger аннотацията @Singleton гарантира, че обектът ще бъде създаден само веднъж в рамките на компонента (Component) и ще бъде повторно използван при всички последващи заявки за зависимост.
Как работи:
- Когато компонентът Dagger се създаде, той съхранява сингълтон екземпляри във вътрешния си кеш.
- При първото искане за зависимост с аннотация @Singleton, Dagger създава обекта и го запазва.
- При последващи заявки за същия тип, Dagger връща запазения екземпляр, а не създава нов.
Важно е обхватът на сингълтона да е ограничен до компонента. Ако има няколко компонента, всеки може да има свой собствен сингълтон екземпляр.
Пример:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Тук MyService ще бъде създаден веднъж на нивото на AppComponent и ще бъде повторно използван.