IoC контейнеринде объекттердин жашоо циклинин кандай түрлөрү бар жана алар кандай колдонулат?
sobes.tech AI
AIден жооп
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 сураныч үчүн бир объект
Жашоо циклин тандоо объекттин абалына жана колдонмонун иштөө натыйжалуулугуна көз каранды.