Junior — Middle
Cum se păstrează dependența Hof, marcată cu adnotarea Singleton, în cadrul injecției de dependențe Dagger?
sobes.tech AI
Răspuns de la AI
În Dagger, adnotarea @Singleton garantează că obiectul va fi creat o singură dată în cadrul componentului (Component) și va fi reutilizat pentru toate solicitările ulterioare de dependință.
Cum funcționează:
- Când se creează componenta Dagger, aceasta stochează instanțe singleton în cache-ul său intern.
- La prima solicitare de dependință cu adnotarea @Singleton, Dagger creează obiectul și îl salvează.
- La solicitările ulterioare ale aceluiași tip, Dagger returnează instanța salvată în loc să creeze una nouă.
Este important ca domeniul de aplicare al singletonului să fie limitat la component. Dacă există mai multe componente, fiecare poate avea propria instanță singleton.
Exemplu:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Aici, MyService va fi creat o singură dată la nivelul AppComponent și va fi reutilizat.