Sobes.tech
Junior — Middle

IoC konteynerida ob'ektlarning turli hayot aylanish turlari mavjudmi va ular qanday qo'llaniladi?

sobes.tech AI

AIdan javob

IoC (Inversion of Control) konteynerlarida odatda quyidagi ob'ektlarning hayot aylanishi turlari ishlatiladi:

  1. Transient (Vaqtinchalik) — har safar so'rov qilganda, konteyner yangi ob'ekt nusxasini yaratadi. Har bir operatsiya uchun yangi ob'ekt kerak bo'lsa, ishlatiladi.

  2. Singleton (Yagona) — konteyner birinchi so'rovda ob'ekt nusxasini yaratadi va keyingi barcha so'rovlar uchun uni qaytaradi. Holat yoki resurslar bilan ishlashda, ular yagona bo'lishi kerak bo'lsa, mos keladi.

  3. Scoped (Kapsamli) — ob'ekt belgilangan scope uchun bir marta yaratiladi (masalan, web ilovada so'rov uchun) va bu scope doirasida qayta ishlatiladi. Scope tugagach, ob'ekt yo'q qilinadi.

C# misoli Microsoft.Extensions.DependencyInjection yordamida:

services.AddTransient<IService, Service>(); // har safar yangi ob'ekt
services.AddSingleton<IService, Service>(); // butun ilova davomida yagona ob'ekt
services.AddScoped<IService, Service>(); // har HTTP so'rov uchun ob'ekt

Hayot aylanishini tanlash, ob'ektning holat talablari va ilovaning ishlash samaradorligiga bog'liq.