Sobes.tech
Junior — Middle

Quais os tipos de ciclos de vida de objetos existem no contêiner IoC e como eles são aplicados?

sobes.tech IA

Resposta da IA

Nos contêineres IoC (Inversão de Controle), normalmente são utilizados os seguintes tipos de ciclos de vida de objetos:

  1. Transiente — a cada solicitação, o contêiner cria uma nova instância do objeto. Usado quando é necessário um novo objeto para cada operação.

  2. Singleton — o contêiner cria uma instância do objeto na primeira solicitação e a retorna em todas as solicitações subsequentes. Adequado para serviços com estado ou recursos que devem ser únicos.

  3. Scoped — o objeto é criado uma vez por escopo definido (por exemplo, por requisição em uma aplicação web) e reutilizado dentro desse escopo. Após o término do escopo, o objeto é destruído.

Exemplo em C# usando Microsoft.Extensions.DependencyInjection:

services.AddTransient<IService, Service>(); // novo objeto a cada solicitação
services.AddSingleton<IService, Service>(); // um objeto durante todo o ciclo de vida da aplicação
services.AddScoped<IService, Service>(); // um objeto por requisição HTTP

A escolha do ciclo de vida depende dos requisitos de estado do objeto e do desempenho da aplicação.