Sobes.tech
Junior — Middle

Μπορείτε να αναφέρετε άλλους τύπους κύκλων ζωής αντικειμένων που χρησιμοποιούνται σε κοντέινερ IoC, εκτός από singleton;

sobes.tech AI

Απάντηση από AI

Εκτός από τον κύκλο ζωής Singleton, στα IoC κοντέινερ συχνά χρησιμοποιούνται οι ακόλουθοι τύποι κύκλου ζωής αντικειμένων:

  • Transient (Μεταβατικό): κάθε αίτημα για αντικείμενο δημιουργεί μια νέα περίπτωση. Χρησιμοποιείται όταν χρειάζεται ένα φρέσκο αντικείμενο χωρίς κατάσταση.
  • Scoped (Περιοχή): το αντικείμενο δημιουργείται μία φορά ανά ορισμένη περιοχή, π.χ., για ένα HTTP αίτημα σε web εφαρμογές. Μετά το τέλος της περιοχής, το αντικείμενο καταστρέφεται.
  • Per Thread (Ανά νήμα): το αντικείμενο δημιουργείται μία φορά ανά νήμα, χρήσιμο για πολυνηματικές εφαρμογές.

Παράδειγμα σε C# με Microsoft.Extensions.DependencyInjection:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Μεταβατικό
services.AddScoped<IMyService, MyService>();   // Περιοχή