Mikä on riippuvuusinjektio?

Riippuvuusinjektio on tekniikka, jota käytetään olio-ohjelmoinnissa (OOP). Tämä tekniikka viittaa tai muodostaa yhteyden toiseen ohjelmaan ja asettaa alkuperäisen ohjelman riippuvaiseksi viitatusta ohjelmasta. Tämän avulla ohjelmoijat voivat heti lisätä toimintoja tai lisäominaisuuksia alkuperäiseen ohjelmaan, mutta tekee myös koodauksesta monimutkaisemman ja lisää liiallista koodausta, joka voi hidastaa ohjelmaa. Useimmat OOP -ohjelmat antavat ohjelmoijille mahdollisuuden viitata erilaisiin asennettuihin ohjelmiin ilman koodin lisäämistä.

Riippuvuusinjektion käyttö on usein säästävää useimmissa ohjelmissa. Jotta ohjelma olisi riippuvainen, ohjelmoija kirjoittaa koodin, joka viittaa toiseen ohjelmaan, osittain tai kokonaan. Yleensä mihin tahansa asennettuun ohjelmaan voidaan viitata, mutta jotkin koodausmallit sallivat vain tiettyjen ohjelmien viittaamisen. Jos esimerkiksi ohjelmoija haluaa lisätä ohjelmaan tekstiominaisuuksia, hän ei voi tehdä ominaisuutta käsin, vaan hän voi viitata tekstinkäsittelyohjelmaan. Näin alkuperäisellä ohjelmalla on nyt uusi ominaisuus, mutta se riippuu siitä, että toinen ohjelma toimii ja on edelleen asennettuna tietokoneeseen.

Useimmat uudet ohjelmoijat mieluummin käyttävät riippuvuusinjektiota sen sijaan, että rakennuttaisivat ominaisuuksia käsin. Tämä johtuu siitä, että ominaisuuksien luominen voi olla monimutkaista ja uudet ohjelmoijat eivät välttämättä tiedä, miten ominaisuus saadaan aikaan tehokkaasti. Viittaamalla ohjelmaan ohjelmoijan ei tarvitse tietää koodausta, ja kaikki ominaisuudet voidaan lisätä vain muutamalla koodirivillä.

Riippuvuusinjektioon liittyy monia ongelmia, varsinkin jos ohjelma on tarkoitettu kuluttajille, minkä vuoksi ammattilaiset ja ohjelmistotoimittajat eivät usein käytä tai käytä sitä säästeliäästi. Yksi ilmeisimmistä riippuvuusinjektion ongelmista kuluttajan puolella on mahdollisuus, että kuluttajalla ei ehkä ole viitattua ohjelmaa. Jos ohjelma on rakennettu viittaamaan ohjelman A ominaisuuteen, mutta kuluttaja ei ole asentanut ohjelmaa A, ominaisuus tai koko ohjelma kokee heikentävän virheen.

Korkealla riippuvuustasolla, jossa viitataan useisiin ohjelmiin, ilmenee muita ongelmia. Viittaamalla yhteen tai kahteen ohjelmaan luodaan pieni määrä koodia, mutta enemmän tekeminen voi edellyttää liiallista koodia, joka hidastaa ohjelmaa. Jos ohjelmassa on virhe, nyt on paljon monimutkaista koodausta, jonka ohjelmoijan on sukellettava löytääkseen virheen, varsinkin koska virhe voi johtua viitatusta ohjelmasta eikä alkuperäisestä ohjelmasta.

Monet uudet ohjelmoijat käyttävät riippuvuusruiskutusta, joten useimmat OOP -mallit tarjoavat automaattisen tavan viitata ohjelmaan. Tämän avulla ohjelmoija voi muodostaa viiteyhteyden vain muutamalla hiiren napsautuksella. Ohjelmaan viittaaminen automaattisesti lisää usein hieman enemmän koodausta kuin viittauksen kirjoittaminen käsin, mutta koska ohjelmoija on uusi eikä ohjelma todennäköisesti siirry kuluttajille, tämän ei pitäisi aiheuttaa vakavia ongelmia.