..


Sponzorované odkazy

MOV a DI (inverzie kontroly a Dependency Injection)

"S Inverzia Control (IOC) je typickým rysom tohto rámca, ktorý sa pohybuje prietoku aplikácie rámca.

Zoberme si príklad, objasniť pojem: Ak vytvoríte GUI API cez hojdačka , programátor potrebuje len na vykonanie obslužnej rutiny udalosti vyvolané užívateľom, napríklad stlačením tlačidla alebo zadaním textu. Rámca je ponechané na ovládanie aplikácie toku, ako je napríklad otváranie a zatváranie okien.

Tento typ správania sa nazýva IOC, pretože ovládanie sa pohybuje autor rámca.

Akonáhle je jasné, čo Medzinárodný olympijský výbor, vidíme, ako sa používa na jar.
Všetky aplikácie sa skladajú z predmetov, ktoré dosiahne vopred určené ciele musia spolupracovať so sebou, a nevyhnutne tvorí závislosť. Normálne tieto závislosti sú vyriešené kód, ktorý je vhodný pre konfiguráciu (typicky výrobcu). Predpokladajme, že máme zaviesť triedu pre správu videa obchod:






 it.mrwebmaster balenia;









 import java.util.ArrayList;







 import java.util.List;









 {Public class VideoManager





  



 Súkromné ​​DvdService dvdService;





  



 verejné VideoManager () {



    



 super ();



    



 / **



     



 * Konfigurácia a riešenie závislostí



     



 * /



    



 this.dvdService DvdServiceImpl = new ();



  



 }





  



 <Dvd> GetAvalaibleDvdList verejný zoznam () {



    



 / **



     



 * Načítať zoznam DVD



     



 * /



    



 Zoznam <Dvd> dvdList dvdService.getDvdList = ();





    



 / **



     



 * Priechodná zoznam DVD nájsť

 

     



 * Sú k dispozícii



     



 * /



    



 Zoznam = new ArrayList <Dvd> availabeDvdList <Dvd> ();





    



 pre (DVD DVD: dvdList) {



      



 if (dvd.isDisponibile ()) {



        



 availabeDvdList.add (DVD);



      



 }



    



 }





    



 availabeDvdList návrat;



  



 }

	





 }



V tomto príklade triedy VideoManager má za úlohu získať finančné prostriedky na zozname nežiaducich prenajatých DVD. Zoznam je získať pomocou služby (DvdService), ktorý načíta zoznam všetkých DVD a na bicykli na zozname sú k dispozícii DVD. Trieda VideoManager, preto má závislosť na objekte DvdService, ktorá je riešená v konštruktory.

Diagramma Dipendenze

Ak by sme nemali použiť jar sme mali starať o riešení VideoManager dipendeza v konštruktory triedy, pretože závislosť bude vyriešený do jari.
Na jar, potom je MOV invertovať kontrolu nad závislosťou konfiguráciu. Z tohto dôvodu bolo vytvorené Martin Fowler vo svojom slávnom článku , termín Dependecy Injection (DI), ktorý je niekedy používaný nesprávne ako synonymum id MOV.
Základný koncept DI je mať samostatný objekt k tomu riešeniu závislostí a inicializácia.

Nasledujúci assembler triedy, má za úlohu inicializovat triedy DvdService:

Diagramma Assembler

K dispozícii sú tri typy Dependecy Injection:

  • Rozhranie vstrekovanie
  • Setter vstrekovanie
  • Konštruktor Injection
Na jar, ako uvidíme neskôr, uskutočňovali len konštruktor a seter injekcie, ale je tiež možné inicializovať a vytvorenie objektov prostredníctvom objektu výrobne a metódy.

Jarné Java Sprievodca
E-Learning
Linux (kurz) Linux (kurz)
Kompletný sprievodca pre open-source systému. Od 49 €.
PHP (kurz) PHP (kurz)
Celý kurz pre vytváranie dynamických webov. Od 49 €.
Ruby a Ruby on Rails (kurz) Ruby a Ruby on Rails (kurz)
Vytvoriť softvér a webových aplikácií s Ruby a ROR. Od 39 €.
Sponzorované odkazy