Sobes.tech
Junior — Middle

შეგიძლიათ დაასახელოთ სხვა ტიპის ობიექტების ციკლები, რომლებიც გამოიყენება IoC კონტეინერებში, singleton-ის გარდა?

sobes.tech AI

პასუხი AI-სგან

IoC კონტეინერებში, გარდა Singleton ცხოვრების ციკლის, ხშირად გამოიყენება შემდეგი ობიექტების ცხოვრების ციკლის ტიპები:

  • Transient (გადამწყვეტი): თითოეული ობიექტის მოთხოვნა ქმნის ახალ მაგალითს. გამოიყენება, როდესაც საჭიროა ახალი, სტატუსის გარეშე ობიექტი.
  • Scoped (საზღვარი): ობიექტი ქმნება ერთხელ განსაზღვრულ საზღვრებში, მაგალითად, ერთ HTTP მოთხოვნაზე ვებ-აპლიკაციებში. საზღვრის დასრულების შემდეგ, ობიექტი განადგურდება.
  • Per Thread (თითოეული ნაკადი): ობიექტი ქმნება ერთხელ თითოეულ ნაკადზე, მრავალნაკადიანი აპლიკაციებისათვის სასარგებლო.

C# მაგალითი Microsoft.Extensions.DependencyInjection-ის გამოყენებით:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // გადამწყვეტი
services.AddScoped<IMyService, MyService>();   // საზღვარი