Što je injekcija ovisnosti?

Injekcija ovisnosti je tehnika koja se koristi u objektno orijentiranom programiranju (OOP). Ova tehnika upućuje, ili povezuje, s drugim programom i čini izvorni program ovisnim o referenciranom programu. To omogućuje programerima da odmah dodaju funkcije ili dodatne značajke izvornom programu, ali također čini kodiranje kompliciranijim i dodaje prekomjerno kodiranje koje može usporiti program. Većina OOP programa dopušta programerima da referenciraju različite instalirane programe bez potrebe za dodavanjem koda.

Upotreba injekcije ovisnosti često je štedljiva u većini programa. Kako bi program učinio ovisnim, programer piše kod koji upućuje na drugi program, bilo djelomično ili u cijelosti. Obično se može referencirati bilo koji instalirani program, ali neke sheme kodiranja dopuštaju referenciranje samo određenih programa. Na primjer, ako programer želi dodati tekstualne mogućnosti programu, umjesto da ručno izradi značajku, on ili ona može referencirati program za obradu teksta. Čineći to, izvorni program sada ima novu značajku, ali ovisi o tome da drugi program radi i ostaje instaliran na računalu.

Većina novih programera radije koristi injekciju ovisnosti umjesto ručnog izgrađivanja značajki. To je zato što izgradnja značajki može biti komplicirana i novi programeri možda neće znati kako učinkovito napraviti tu značajku. Pozivanjem na program, programer ne mora znati kodiranje, a bilo koja značajka se može dodati sa samo nekoliko redaka koda.

Postoje mnogi problemi s ubacivanjem ovisnosti, osobito ako je program namijenjen korisnicima, zbog čega ga profesionalci i dobavljači softvera često ne koriste ili ga rijetko koriste. Jedan od najočitijih problema s injekcijom ovisnosti na strani potrošača je mogućnost da potrošač možda nema referentni program. Ako je program konstruiran da referencira značajku u Programu A, ali korisnik nema instaliran Program A, značajka ili cijeli program naići će na iscrpljujuću pogrešku.

Na visokim razinama ovisnosti, gdje se navodi nekoliko programa, pojavljuju se drugi problemi. Upućivanje na jedan ili dva programa stvara malu količinu koda, ali više može zahtijevati prekomjeran broj koda koji usporava program. Ako program ima pogrešku, sada postoji velika količina kompliciranog kodiranja kroz koje programer mora zaroniti kako bi pronašao pogrešku, posebno zato što greška može biti u referentnom programu, a ne u izvornom programu.

Mnogi novi programeri koriste injekciju ovisnosti, tako da većina OOP shema nudi automatski način referenciranja programa. To omogućuje programeru, sa samo nekoliko klikova mišem, da uspostavi referentnu vezu. Automatsko referenciranje programa često dodaje nešto više kodiranja od ručnog pisanja reference, ali budući da je programator nov i program najvjerojatnije neće doći do korisnika, to ne bi trebalo predstavljati ozbiljne probleme.