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ů:
-
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.
-
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é.
-
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.