Junior — Middle
Kako se Hof zavisnost, označena anotacijom Singleton, održava u okviru injekcije zavisnosti Dagger?
sobes.tech АИ
Одговор од АИ
U Dagger-u, anotacija @Singleton garantuje da će objekat biti kreiran samo jednom unutar komponenta (Component) i biće ponovo korišćen kod svih narednih zahteva za zavisnostima.
Kako to radi:
- Kada se kreira Dagger komponenta, ona čuva singleton instance u svom internom kešu.
- Pri prvom zahtevu za zavisnošću sa anotacijom @Singleton, Dagger kreira objekat i čuva ga.
- Pri narednim zahtevima istog tipa, Dagger vraća sačuvanu instancu umesto da kreira novu.
Važno je da je opseg singletona ograničen na komponentu. Ako postoji više komponenti, svaka može imati svoju instancu singletona.
Primer:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Ovde će MyService biti kreiran jednom na nivou AppComponent-a i biće ponovo korišćen.