Sobes.tech
Junior — Middle

¿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:

  1. 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.

  2. 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.

  3. 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.