¿Qué tipos de ciclos de vida de objetos existen en el contenedor IoC y cómo se aplican?
sobes.tech AI
Respuesta de la IA
En los contenedores IoC (Inversión de Control), generalmente se utilizan los siguientes tipos de ciclos de vida de objetos:
-
Transitorio — cada vez que se solicita, el contenedor crea una nueva instancia del objeto. Se usa cuando se necesita un nuevo objeto para cada operación.
-
Singleton — el contenedor crea una instancia del objeto en la primera solicitud y la devuelve en todas las subsiguientes. Es adecuado para servicios con estado o recursos que deben ser únicos.
-
Scoped — el objeto se crea una vez por un ámbito determinado (por ejemplo, por solicitud en una aplicación web) y se reutiliza dentro de ese ámbito. Después de que el ámbito termina, el objeto se destruye.
Ejemplo en C# usando Microsoft.Extensions.DependencyInjection:
services.AddTransient<IService, Service>(); // nuevo objeto cada vez
services.AddSingleton<IService, Service>(); // un objeto durante todo el ciclo de vida de la aplicación
services.AddScoped<IService, Service>(); // un objeto por cada solicitud HTTP
La elección del ciclo de vida depende de los requisitos de estado del objeto y del rendimiento de la aplicación.