Sobes.tech
Junior — Middle

Koje vrste životnih ciklusa objekata postoje u IoC kontejneru i kako se oni primenjuju?

sobes.tech АИ

Одговор од АИ

У IoC (Inversion of Control) контејнерима се обично користе следећи типови животних циклуса објеката:

  1. Transient (Трансјентан) — сваки пут када се захтева, контејнер креира нову инстанцу објекта. Користи се када је потребан нови објекат за сваку операцију.

  2. Singleton (Једина) — контејнер креира једну инстанцу објекта при првом захтеву и враћа је у свим наредним. Погодно за сервисе са стањем или ресурсима који морају бити јединствени.

  3. Scoped (Обимни) — објекат се креира једном за одређени scope (нпр. за сваки захтев у веб апликацији) и поново се користи у оквиру тог scope-а. Након завршетка scope-а, објекат се уништава.

Пример у C# са Microsoft.Extensions.DependencyInjection:

services.AddTransient<IService, Service>(); // нови објекат сваки пут
services.AddSingleton<IService, Service>(); // један објекат током целог живота апликације
services.AddScoped<IService, Service>(); // један објекат по HTTP захтеву

Избор животног циклуса зависи од захтева за стањем објекта и перформансама апликације.