Junior — Middle
Come viene mantenuta la dipendenza di Hof, contrassegnata con l'annotazione Singleton, nel contesto dell'iniezione delle dipendenze di Dagger?
sobes.tech AI
Risposta dell'AI
In Dagger, l'annotazione @Singleton garantisce che l'oggetto venga creato una sola volta all'interno del componente (Component) e venga riutilizzato in tutte le successive richieste di dipendenza.
Come funziona:
- Quando il componente Dagger viene creato, memorizza le istanze singleton nel suo cache interno.
- Alla prima richiesta di dipendenza con l'annotazione @Singleton, Dagger crea l'oggetto e lo memorizza.
- Nelle richieste successive dello stesso tipo, Dagger restituisce l'istanza memorizzata invece di crearne una nuova.
È importante che l'ambito del singleton sia limitato al componente. Se ci sono più componenti, ognuno può avere la propria istanza singleton.
Esempio:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Qui, MyService verrà creato una volta a livello di AppComponent e riutilizzato.