Injecția de dependență este o tehnică utilizată în programarea orientată pe obiecte (OOP). Această tehnică face referire sau se conectează cu un alt program și face ca programul original să fie dependent de programul referit. Acest lucru permite programatorilor să adauge instantaneu funcții sau caracteristici suplimentare la programul original, dar, de asemenea, face codarea mai complicată și adaugă codare excesivă care poate încetini programul. Majoritatea programelor OOP permit programatorilor să facă referire la o varietate de programe instalate fără a fi nevoie să adauge cod.
Utilizarea injecției de dependență este adesea redusă în majoritatea programelor. Pentru a face programul dependent, programatorul scrie cod care face referire la un alt program, fie parțial, fie integral. În mod normal, orice program instalat poate fi referit, dar unele scheme de codare permit referirea doar la anumite programe. De exemplu, dacă programatorul dorește să adauge capacități de text la program, în loc să facă caracteristica manual, el sau ea poate face referire la un program de procesare de text. Făcând acest lucru, programul original are acum o nouă caracteristică, dar depinde de faptul că celălalt program funcționează și rămâne instalat pe computer.
Majoritatea programatorilor noi preferă să folosească injecția de dependență în loc să construiască funcții manual. Acest lucru se datorează faptului că construirea caracteristicilor poate fi complicată și este posibil ca programatorii noi să nu știe cum să realizeze funcția în mod eficient. Făcând referire la un program, programatorul nu trebuie să cunoască codificarea și orice caracteristică poate fi adăugată cu doar câteva linii de cod.
Există multe probleme cu injectarea dependenței, mai ales dacă programul este destinat consumatorilor, motiv pentru care este adesea nefolosit sau folosit cu moderație de către profesioniști și furnizorii de software. Una dintre cele mai evidente probleme cu injecția de dependență din partea consumatorului este posibilitatea ca consumatorul să nu aibă programul de referință. Dacă programul este construit pentru a face referire la o caracteristică din Programul A, dar consumatorul nu are Programul A instalat, caracteristica sau întregul program va întâmpina o eroare debilitante.
La niveluri ridicate de dependență, unde se face referire la mai multe programe, se manifestă alte probleme. Referința la unul sau două programe creează o cantitate mică de cod, dar a face mai mult poate necesita un cod excesiv care încetinește programul. Dacă programul are o eroare, acum există o cantitate mare de codare complicată prin care programatorul trebuie să se scufunde pentru a găsi eroarea, mai ales că eroarea poate fi la programul de referință și nu la programul original.
Mulți programatori noi folosesc injecția de dependență, așa că majoritatea schemelor OOP oferă o modalitate automată de referire a unui program. Acest lucru permite programatorului, cu doar câteva clicuri de mouse, să facă conexiunea de referință. Referirea automată a unui program adaugă adesea puțin mai multă codare decât scrierea manuală a referinței, dar din moment ce programatorul este nou și cel mai probabil programul nu va ajunge la consumatori, acest lucru nu ar trebui să prezinte probleme serioase.