dependency-injectionAan de slag met afhankelijkheid-injectie


Opmerkingen

In objectgeoriënteerd programmeren zijn objecten vaak afhankelijk van andere objecten om dingen te doen.

Dependency Injection (DI) geeft een object de dingen waarvan het afhankelijk is, zodat het zich geen zorgen hoeft te maken dat ze het zelf krijgen. Dat wil zeggen dat de afhankelijkheden in het object worden geïnjecteerd . Dit wordt meestal gedaan met constructorinjectie of eigenschapsinjectie .

Afhankelijkheidsinjectie is een vorm van Inversion of Control (IoC). IoC is een bredere term die een patroon van softwareontwerp beschrijft.

In traditionele procedurele programmering volgt de controlestroom logisch in stappen. De besturing is in handen van het object of de functie die bewerkingen uitvoert. Stap voor stap voert het programma een reeks bewerkingen uit die expliciet worden bestuurd.

In plaats van het object of de functie die elke stap gedetailleerd weergeeft, kan de controlestroom worden omgekeerd door de bewerkingen uit te voeren door meer generieke en abstracte objecten - meestal een kader met een breder bereik.

Wat is een basisvoorbeeld van afhankelijkheidsinjectie?

Hier is een klas (hond) die zijn eigen afhankelijkheid creëert (voedsel):

class Dog {
    public Dog() {
        var food = new Food();

        this.eat(food);
    }
}
 

Hier is dezelfde klasse die wordt geïnjecteerd met zijn afhankelijkheid met behulp van constructorinjectie:

class Dog {
    public Dog(Food food) {
        this.eat(food);
    }
}