Kaj je injekcija odvisnosti?

Injekcija odvisnosti je tehnika, ki se uporablja v objektno usmerjenem programiranju (OOP). Ta tehnika se sklicuje ali povezuje z drugim programom in naredi izvirni program odvisen od navedenega programa. To omogoča programerjem, da v prvotni program takoj dodajo funkcije ali dodatne funkcije, hkrati pa otežijo kodiranje in dodajo prekomerno kodiranje, ki lahko upočasni program. Večina OOP programov omogoča programerjem, da se sklicujejo na različne nameščene programe, ne da bi jim bilo treba dodajati kodo.

Uporaba injekcije odvisnosti je v večini programov pogosto zmerna. Da bi bil program odvisen, programer napiše kodo, ki se delno ali v celoti sklicuje na drug program. Običajno se lahko sklicuje na kateri koli nameščen program, vendar nekatere sheme kodiranja dovoljujejo sklicevanje samo na določene programe. Na primer, če želi programer programu dodati zmožnosti besedila, namesto da bi funkcijo izdelal ročno, se lahko sklicuje na program za obdelavo besedil. S tem ima izvirni program zdaj novo funkcijo, vendar je odvisen od tega, ali ta drugi program deluje in ostane nameščen v računalniku.

Večina novih programerjev raje uporablja injekcijo odvisnosti namesto ročne gradnje funkcij. To je zato, ker je gradnja funkcij lahko zapletena in novi programerji morda ne vedo, kako učinkovito narediti funkcijo. S sklicevanjem na program programerju ni treba poznati kodiranja in katero koli funkcijo je mogoče dodati z le nekaj vrsticami kode.

Z vbrizgavanjem odvisnosti je veliko težav, še posebej, če je program namenjen potrošnikom, zato ga strokovnjaki in ponudniki programske opreme pogosto ne uporabljajo ali uporabljajo zmerno. Ena najbolj očitnih težav z injekcijo odvisnosti na strani potrošnika je možnost, da potrošnik morda nima navedenega programa. Če je program izdelan tako, da se sklicuje na funkcijo v programu A, vendar uporabnik nima nameščenega programa A, bo funkcija ali celoten program naletel na izčrpavajočo napako.

Pri visokih ravneh odvisnosti, kjer se sklicuje na več programov, se pojavijo druge težave. Sklicevanje na enega ali dva programa ustvari majhno količino kode, toda če naredite več, lahko zahtevate prekomerno kodo, ki upočasni program. Če ima program napako, je zdaj veliko zapletenega kodiranja, skozi katerega se mora programer poglobiti, da bi našel napako, še posebej zato, ker je napaka morda v referenčnem programu in ne v izvirnem programu.

Mnogi novi programerji uporabljajo injekcijo odvisnosti, zato večina OOP shem ponuja samodejni način sklicevanja na program. To omogoča programerju, da z le nekaj kliki miške vzpostavi referenčno povezavo. Samodejno sklicevanje na program pogosto doda nekoliko več kodiranja kot ročno pisanje, a ker je programer nov in program najverjetneje ne bo šel do potrošnikov, to ne bi smelo predstavljati resnih težav.