# Dependency Inversion Principle (DIP)

Het Dependency Inversion Principle (DIP) heeft betrekking op het omkeren van de traditionele afhankelijkheden tussen hoger niveau modules en lagere niveau modules in een softwarearchitectuur. Dit principe benadrukt dat hogere niveau modules niet rechtstreeks afhankelijk mogen zijn van lagere niveau modules, maar beide zouden afhankelijk moeten zijn van abstracte concepten, zoals interfaces of abstracte klassen.

In eenvoudige bewoordingen stelt het DIP voor om te streven naar een situatie waarin de hogere niveaus van je applicatie niet afhankelijk zijn van specifieke implementaties van lagere niveau modules, maar eerder van abstracties. Dit vergroot de flexibiliteit, onderhoudbaarheid en uitbreidbaarheid van de code, omdat je gemakkelijker van implementatie kunt wisselen zonder hogere niveau modules te beïnvloeden.

Omdat Dependency Injection complex is en zeer belangrijk is in moderne software ontwikkeling behandelen we dit in een afzonderlijke les.
