O scurtă introducere în Dependență de Injecție: ceea ce este, și când să-l folosească

de Bhavya Karla

Introducere

În software-ul de inginerie, de injectare dependență este o tehnică prin care un obiect (sau metoda statică) furnizează dependențe de un alt obiect. O dependență este un obiect care poate fi folosit (un serviciu).

aceasta este definiția Wikipedia, dar totuși, dar nu este deosebit de ușor de înțeles. Deci, să o înțelegem mai bine.,înainte de a înțelege ce înseamnă în programare, să vedem mai întâi ce înseamnă în general, deoarece ne va ajuta să înțelegem mai bine conceptul.

dependență sau mijloace dependente bazându-se pe ceva pentru sprijin. Ca și cum aș spune că ne bazăm prea mult pe telefoanele mobile decât înseamnă că suntem dependenți de ele.deci, înainte de a ajunge la injecții de dependență, mai întâi să înțelegem ce înseamnă o dependență în programare.

când clasa a folosește o anumită funcționalitate a clasei B, atunci sa spus că clasa A are o dependență de clasa B.,

Arată dependențele între clase

În Java, înainte de a putea utiliza metode din alte clase, avem nevoie în primul rând de a crea un obiect din acea clasă (de exemplu, O clasa are nevoie pentru a crea o instanță a clasei B).deci, transferul sarcinii de creare a obiectului către altcineva și utilizarea directă a dependenței se numește injecție de dependență.

ce se întâmplă dacă codul ar putea vorbi?

de ce ar trebui să folosesc injecția de dependență?,să presupunem că avem o clasă de mașini care conține diverse obiecte, cum ar fi roți, motor etc.aici clasa auto este responsabilă pentru crearea tuturor obiectelor de dependență. Acum, ce se întâmplă dacă vom decide să șanț MRFWheels în viitor și doriți să utilizați roți Yokohama?va trebui să recreăm obiectul auto cu o nouă dependență Yokohama. Dar când folosim injecția de dependență (di), putem schimba roțile în timpul rulării (deoarece dependențele pot fi injectate în timpul rulării, mai degrabă decât în timpul compilării).,vă puteți gândi la DI ca la intermediarul din Codul nostru care face toată munca de a crea obiectul preferat al roților și de a-l oferi clasei auto.aceasta face ca clasa noastră de mașini să fie independentă de crearea obiectelor roților, bateriei etc.

există practic trei tipuri de injecție de dependență:

  1. injecție constructor: dependențele sunt furnizate printr-un constructor de clasă.
  2. setter injection: clientul expune o metodă setter pe care injectorul o folosește pentru a injecta dependența.,
  3. injectarea interfeței: dependența oferă o metodă de injectare care va injecta dependența în orice client care i-a fost transmis. Clienții trebuie să implementeze o interfață care expune o metodă setter care acceptă dependența.

Deci, acum, dependența de injecție are responsabilitatea de a:

  1. Crearea de obiecte
  2. Știu ce clase nevoie de acele obiecte
  3. Și să le ofere toate acele obiecte

Dacă există vreo schimbare în obiecte, apoi DI se uită în ea și că nu ar trebui să se referă la clasa folosind aceste obiecte., În acest fel, dacă obiectele se schimbă în viitor, atunci responsabilitatea lui DI de a furniza obiectele corespunzătoare clasei.

inversarea controlului-conceptul din spatele DI

aceasta afirmă că o clasă nu ar trebui să-și configureze dependențele static, ci ar trebui să fie configurată de o altă clasă din exterior.

Acesta este cel de-al cincilea principiu de S. O. L. I. D — cele cinci principii de bază ale programării orientate pe obiecte si design de Unchiul Bob — care prevede că o clasă ar trebui să depindă de abstractizare și nu la concrețiuni (în termeni simpli, hard-coded).,conform principiilor, o clasă ar trebui să se concentreze pe îndeplinirea responsabilităților sale și nu pe crearea obiectelor pe care le cere pentru a îndeplini aceste responsabilități. Și aici intră în joc injecția de dependență: oferă clasei obiectele necesare.Notă: Dacă doriți să aflați despre principii solide de unchiul Bob, atunci vă puteți îndrepta către acest link.

beneficiile utilizării DI

  1. ajută la testarea unității.
  2. Codul plăcii cazanului este redus, deoarece inițializarea dependențelor se face de către componenta injectorului.,
  3. extinderea aplicației devine mai ușoară.
  4. ajută la activarea cuplării libere, ceea ce este important în programarea aplicațiilor.

dezavantaje ale DI

  1. este un pic complex de învățat, iar dacă este suprasolicitat poate duce la probleme de management și alte probleme.
  2. multe erori de timp de compilare sunt împinse la run-time.
  3. cadrele de injectare dependență sunt implementate cu reflecție sau programare dinamică. Acest lucru poate împiedica utilizarea automatizării IDE, cum ar fi „găsiți referințe”, „afișați ierarhia apelurilor” și refactorizarea sigură.,

puteți implementa injecția de dependență pe cont propriu (vanilie pură) sau puteți utiliza biblioteci sau cadre terțe.

Biblioteci și Cadre care implementează DI

  • de Primăvară (Java)
  • Google Guice (Java)
  • Pumnal (Java și Android)
  • Castelul Windsor (.NET)
  • Unitatea(.,NET)

Pentru a afla mai multe despre dependența de injecție, puteți verifica afară de resursele de mai jos:

Java Injectare Dependență — DI Design Model Exemplu Tutorial — JournalDev

Utilizarea de injectare dependență în Java — Introducere — Tutorial — Vogella

Inversiune de Control Containere și de Injectare Dependență de model — Martin Fowler

Sper că vă ajută!daca ti-a placut articolul si vrei sa citesti mai multe articole uimitoare, atunci urmeaza-ma aici (Bhavya Karia) si arata-ti sprijinul pentru ca ma motiveaza sa scriu mai mult.,

dacă aveți întrebări sau feedback pentru mine decât să ne conectăm pe LinkedIn, Twitter , Facebook.

Edit 1:

datorită lui Sergey Ufocoder acum acest articol a fost transformat în limba rusă. Prietenii mei ruși și care toți pot citi limba rusă îi dau o citire.de asemenea, dacă doriți să aplicați DI în JavaScript și căutați o bibliotecă, atunci Jo Surikat sugerează să încercați biblioteca sa.

Di-Ninja

încă o bibliotecă minunată în JavaScript a fost sugerată de Nicolas Froidure.,

knifecycle

Edit 2:

dacă sunteți un dezvoltator PHP, atunci nu vă faceți griji, v-ați acoperit și voi. Gordon Forsythe a recomandat această bibliotecă uimitoare pe care ați dori să o încercați.Vă mulțumim pentru toate cuvintele frumoase pe care le-am primit. Împărtășiți articolul, astfel încât tot mai mulți oameni să poată beneficia.

Share

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *