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:
-
Transient (Vaqtinchalik) — har safar so'rov qilganda, konteyner yangi ob'ekt nusxasini yaratadi. Har bir operatsiya uchun yangi ob'ekt kerak bo'lsa, ishlatiladi.
-
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.
-
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.