Quels types de cycles de vie des objets existent dans le conteneur IoC et comment sont-ils appliqués?
sobes.tech IA
Réponse de l'IA
Dans les conteneurs IoC (Inversion de Contrôle), les types de cycles de vie des objets suivants sont généralement utilisés:
-
Transitoire — chaque fois qu'une demande est faite, le conteneur crée une nouvelle instance de l'objet. Utilisé lorsque vous avez besoin d'un nouvel objet pour chaque opération.
-
Singleton — le conteneur crée une instance de l'objet lors de la première demande et la renvoie pour toutes les demandes suivantes. Convient pour les services avec état ou ressources qui doivent être uniques.
-
Scoped — l'objet est créé une fois pour un scope défini (par exemple, pour chaque requête dans une application web) et réutilisé dans ce scope. Après la fin du scope, l'objet est détruit.
Exemple en C# avec Microsoft.Extensions.DependencyInjection:
services.AddTransient<IService, Service>(); // nouvel objet à chaque fois
services.AddSingleton<IService, Service>(); // un objet pour toute la durée de vie de l'application
services.AddScoped<IService, Service>(); // un objet par requête HTTP
Le choix du cycle de vie dépend des exigences en matière d'état de l'objet et de la performance de l'application.