Sobes.tech
Junior — Middle

Welke soorten levenscyclus van objecten bestaan er in de IoC-container en hoe worden ze toegepast?

sobes.tech AI

Antwoord van AI

In IoC (Inversion of Control) containers worden doorgaans de volgende typen objectlevenscycli gebruikt:

  1. Transient (Tijdelijk) — elke keer dat er een verzoek wordt gedaan, maakt de container een nieuw exemplaar van het object. Gebruikt wanneer een nieuw object voor elke operatie nodig is.

  2. Singleton (Enkelvoudig) — de container maakt bij de eerste aanvraag een instantie van het object en geeft deze terug bij alle volgende aanvragen. Geschikt voor services met status of bronnen die uniek moeten zijn.

  3. Scoped (Gedefinieerd bereik) — het object wordt één keer gemaakt voor een bepaald scope (bijvoorbeeld per verzoek in een webapplicatie) en wordt binnen dat scope hergebruikt. Na het einde van de scope wordt het object vernietigd.

Voorbeeld in C# met Microsoft.Extensions.DependencyInjection:

services.AddTransient<IService, Service>(); // nieuw object elke keer
services.AddSingleton<IService, Service>(); // één object gedurende de hele levensduur van de applicatie
services.AddScoped<IService, Service>(); // één object per HTTP-verzoek

De keuze van de levenscyclus hangt af van de vereisten voor de toestand van het object en de prestaties van de applicatie.