Sobes.tech
Junior — Middle

Jaké typy životních cyklů objektů existují v IoC kontejneru a jak jsou používány?

sobes.tech AI

Odpověď od AI

V IoC (Inversion of Control) kontejnerech se obvykle používají následující typy životních cyklů objektů:

  1. Transient (Přechodný) — při každém požadavku kontejner vytvoří novou instanci objektu. Používá se, když je potřeba nový objekt pro každou operaci.

  2. Singleton (Jednotný) — kontejner vytvoří při prvním požadavku instanci objektu a vrací ji při všech následujících požadavcích. Vhodné pro služby s stavem nebo zdroje, které musí být jedinečné.

  3. Scoped (Ohraničený) — objekt je vytvořen jednou pro daný scope (například pro požadavek v webové aplikaci) a znovu použit v rámci tohoto scope. Po ukončení scope je objekt zničen.

Příklad v C# s použitím Microsoft.Extensions.DependencyInjection:

services.AddTransient<IService, Service>(); // nový objekt při každém požadavku
services.AddSingleton<IService, Service>(); // jeden objekt po celou dobu životnosti aplikace
services.AddScoped<IService, Service>(); // jeden objekt na každý HTTP požadavek

Volba životního cyklu závisí na požadavcích na stav objektu a výkonu aplikace.