Koje vrste životnih ciklusa objekata postoje u IoC kontejneru i kako se oni primenjuju?
sobes.tech АИ
Одговор од АИ
У IoC (Inversion of Control) контејнерима се обично користе следећи типови животних циклуса објеката:
-
Transient (Трансјентан) — сваки пут када се захтева, контејнер креира нову инстанцу објекта. Користи се када је потребан нови објекат за сваку операцију.
-
Singleton (Једина) — контејнер креира једну инстанцу објекта при првом захтеву и враћа је у свим наредним. Погодно за сервисе са стањем или ресурсима који морају бити јединствени.
-
Scoped (Обимни) — објекат се креира једном за одређени scope (нпр. за сваки захтев у веб апликацији) и поново се користи у оквиру тог scope-а. Након завршетка scope-а, објекат се уништава.
Пример у C# са Microsoft.Extensions.DependencyInjection:
services.AddTransient<IService, Service>(); // нови објекат сваки пут
services.AddSingleton<IService, Service>(); // један објекат током целог живота апликације
services.AddScoped<IService, Service>(); // један објекат по HTTP захтеву
Избор животног циклуса зависи од захтева за стањем објекта и перформансама апликације.