IoC konteynerində hansı növ obyektlərin həyat dövrləri mövcuddur və necə tətbiq olunur?
sobes.tech Süni İntellekt
AI-dan cavab
IoC (Inversion of Control) konteynerlərində adətən aşağıdakı obyektlərin həyat dövrü növləri istifadə olunur:
-
Transient (Müvəqqəti) — hər sorğu zamanı konteyner yeni obyekt nümunəsi yaradır. Hər əməliyyat üçün yeni obyekt lazım olduqda istifadə olunur.
-
Singleton (Yeganə) — konteyner ilk sorğuda obyekt nümunəsini yaradır və bütün sonrakı sorğular üçün onu geri qaytarır. Durum və ya resursların unikal olması lazım olan xidmətlər üçün uyğundur.
-
Scoped (Məhdudlaşdırılmış) — obyekt müəyyən bir scope üçün bir dəfə yaradılır (məsələn, veb tətbiqində sorğu üçün) və bu scope daxilində təkrar istifadə olunur. Scope bitdikdən sonra obyekt məhv edilir.
C# dilində Microsoft.Extensions.DependencyInjection istifadə edərək nümunə:
services.AddTransient<IService, Service>(); // hər dəfə yeni obyekt
services.AddSingleton<IService, Service>(); // bütün tətbiq dövrü üçün yeganə obyekt
services.AddScoped<IService, Service>(); // hər HTTP sorğusu üçün obyekt
Həyat dövrünün seçimi obyektin vəziyyət tələblərinə və tətbiqin performansına bağlıdır.