Junior — Middle
Comment la dépendance Hof, marquée par l'annotation Singleton, est-elle conservée dans le cadre de l'injection de dépendances de Dagger?
sobes.tech IA
Réponse de l'IA
Dans Dagger, l'annotation @Singleton garantit que l'objet sera créé une seule fois dans le cadre du composant (Component) et sera réutilisé pour toutes les requêtes de dépendance ultérieures.
Comment cela fonctionne :
- Lors de la création du composant Dagger, il stocke des instances singleton dans son cache interne.
- Lors de la première requête de dépendance avec l'annotation @Singleton, Dagger crée l'objet et le conserve.
- Lors des requêtes suivantes du même type, Dagger retourne l'instance conservée plutôt que d'en créer une nouvelle.
Il est important que la portée du singleton soit limitée au composant. Si plusieurs composants existent, chacun peut avoir sa propre instance singleton.
Exemple :
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Ici, MyService sera créé une seule fois au niveau de AppComponent et sera réutilisé.