Hvad er afhængighedsinjektion?
Afhængighedsinjektion er en teknik, der anvendes i objektorienteret programmering (OOP). Denne teknik refererer eller forbinder med et andet program og gør det originale program afhængigt af det refererede program. Dette giver programmerere mulighed for øjeblikkeligt at tilføje funktioner eller ekstra funktioner til det originale program, men gør også kodning mere kompliceret og tilføjer overdreven kodning, der kan bremse programmet. De fleste OOP-programmer tillader programmerere at referere til en række installerede programmer uden at skulle tilføje kode.
Brugen af afhængighedsinjektion spares ofte i de fleste programmer. For at gøre programmet afhængigt, skriver programmereren kode, der refererer til et andet program, enten delvis eller helt. Normalt kan der refereres til ethvert installeret program, men nogle kodeskemaer tillader kun, at der refereres til specifikke programmer. For eksempel, hvis programmereren ønsker at tilføje tekstfunktioner til programmet i stedet for at lave funktionen for hånd, kan han eller hun referere til et tekstbehandlingsprogram. Ved at gøre dette har det originale program nu en ny funktion, men er afhængig af, at det andet program fungerer og forbliver installeret på computeren.
De fleste nye programmerere foretrækker at bruge afhængighedsinjektion i stedet for at bygge funktioner i hånden. Det skyldes, at bygningsfunktioner kan være komplicerede, og nye programmerere muligvis ikke ved, hvordan man effektivt fremstiller funktionen. Ved at henvise til et program behøver programmereren ikke at kende kodningen, og enhver funktion kan tilføjes med blot et par kodelinjer.
Der er mange problemer med afhængighedsinjektion, især hvis programmet er beregnet til forbrugere, hvorfor det ofte bruges eller bruges sparsomt af fagfolk og softwareudbydere. Et af de mest åbenlyse problemer med afhængighedsinjektion på forbrugersiden er muligheden for, at forbrugeren muligvis ikke har det refererede program. Hvis programmet er konstrueret til at henvise til en funktion i program A, men forbrugeren ikke har program A installeret, vil funktionen eller hele programmet støde på en svækkende fejl.
Ved stort afhængighedsniveau, hvor der henvises til flere programmer, manifesterer andre problemer sig. Henvisning til et eller to programmer skaber en lille mængde kode, men at gøre mere kan kræve overdreven kode, der sænker programmet. Hvis programmet har en fejl, er der nu en stor mængde kompliceret kodning, som programmereren skal dykke igennem for at finde fejlen, især fordi fejlen kan være med det refererede program og ikke det originale program.
Mange nye programmerere bruger afhængighedsinjektion, så de fleste OOP-skemaer tilbyder en automatisk måde at henvise til et program. Dette gør det muligt for programmereren med blot et par museklik at oprette referenceforbindelsen. Automatisk henvisning til et program tilføjer ofte lidt mere kodning end at skrive referencen manuelt, men da programmereren er nyt, og programmet sandsynligvis ikke går til forbrugere, bør dette ikke give alvorlige problemer.