Dependency injection

Geschreven door: op dinsdag 26 juni 2018

Leestijd: 2 minuten

Vanuit een programmeer standpunt gezien is indeling van code een van de belangrijkste aspecten van het programmeren. Een rommelige werkomgeving maakt het lastig om te vinden wat je nodig hebt. Het opruimen hiervan mag dan wel wat extra tijd kosten maar uiteindelijk maakt het je werk makkelijker en sneller. Zo ook in code, als alles netjes is ingedeeld verkleint dit de kans op fouten en zijn de fouten die nog wel bestaan veel sneller en gemakkelijker op te lossen.

Tegenwoordig wordt programmeercode vaak ingedeeld in classes. Hiermee wordt alle code die over eenzelfde onderdeel op bijvoorbeeld een site gaat bij elkaar gezet. Zo zijn er bijvoorbeeld een aantal functies van een knop die bij elkaar staan. De actie van de knop moet echter worden doorgestuurd naar een ander onderdeel of een andere pagina. Hiervoor moeten dus verbindingen gemaakt worden tussen de verschillenden onderdelen.

Een connectie leggen tussen twee onderdelen is vrij simpel. Overigens komen er in grotere projecten steeds meer en meer connecties bij. Hiermee kan de code alsnog onoverzichtelijk en slecht beheerbaar worden. Een onderdeel kan afhankelijk zijn van een 2e onderdeel welke op zijn beurt weer een 3e classe nodig heeft etc.

Hiervoor is de dependency injection structuur bedacht. Hierbij worden alle beschikbare classes geregistreerd in de code als services. Wanneer een van deze services benodigd is hoeft deze alleen maar opgevraagd te worden. Het programma regelt achter de schermen dat de benodigde functionaliteit op de juiste plaats komt.

Praktijk

Wanneer het programma start wordt een lijst met alle beschikbare code componenten ingeladen. Dit gebeurt in de configure service functie. Welke standaard in de Startup class beschikbaar is.


public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<Service, Service>();
    services.AddTransient<Service, Service>();
    services.AddScoped<Service, Service>();
}

Deze services bevatten de code die vanaf een andere plaatsen toegankelijk moeten zijn. Het opvragen van deze services gebeurt vervolgens via de constructor. Wanneer een nieuw stuk code wordt geschreven wordt aangegeven welke services er benodigd zijn. Het programma herkent dit en geeft bij het aanroepen van de code de correcte services mee waar gebruik van kan worden gemaakt.


public OperationService(Service service)
{
    ...
}

Dit maakt het beheren van code gemakkelijker en ook overzichtelijker.


Andere blogartikelen

  • Hoe kan je meer leads genereren EN online verkopen?

    Geschreven door: op woensdag 8 september 2021

    Een website die leads genereert en online verkopen faciliteert? Met behulp van een website met geïntegreerde webshop kunt u direct meer business realiseren. Directe verkopen van standaard producten zo ...

    Bekijk het artikel »
  • Even voorstellen: Nick van Leijden

    Geschreven door: op donderdag 22 juli 2021

    Hoi, volgens mij kennen wij elkaar nog niet! Ik ben Nick van Leijden, een 24 jaar oude User Experience designer en sinds kort werkzaam bij Sigma Solutions als UX developer. Als UX developer is het mij ...

    Bekijk het artikel »
  • Even voorstellen: Renzo Korver

    Geschreven door: op dinsdag 20 juli 2021

    Mijn naam is Renzo Korver, ik ben 24 jaar en ik kom uit Oudkarspel. Eind januari 2021 ben ik bij Sigma Solutions gestart met mijn afstudeerstage voor de opleiding Communicatie aan de Hogeschool van Am ...

    Bekijk het artikel »
Bel 072 5345 888
Open Nieuwsbrief Inschrijving Footer

E-book

Zo wordt uw website een lead generator:
In 3 stappen uw website van visitekaartje naar salesfunnel

Download het E-book Â»

E-book

Zo wordt uw website een lead generator 
In 3 stappen uw website van visitekaartje naar salesfunnel

Download het E-book â€º