Sobes.tech
Junior — Middle

Poți să numești alte tipuri de cicluri de viață ale obiectelor utilizate în containerele IoC, în afară de singleton?

sobes.tech AI

Răspuns de la AI

Pe lângă ciclul de viață Singleton, în containerele IoC sunt frecvent utilizate următoarele tipuri de cicluri de viață ale obiectelor:

  • Transient (Timp de viață tranzitoriu): fiecare solicitare pentru un obiect creează o nouă instanță. Se folosește atunci când este nevoie de un obiect proaspăt, fără stare.
  • Scoped (Scop): obiectul este creat o dată pentru un anumit scop, de exemplu, pentru o solicitare HTTP într-o aplicație web. După încheierea scopului, obiectul este distrus.
  • Per Thread (Pe fir de execuție): obiectul este creat o dată pe fir de execuție, util pentru aplicații multi-threaded.

Exemplu în C# cu Microsoft.Extensions.DependencyInjection:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Transient
services.AddScoped<IMyService, MyService>();   // Scoped