..


Sponzorované odkazy

MOV a DI (inverze kontroly a Dependency Injection)

"S Inverze Control (IOC) je typickým rysem tohoto rámce, který se pohybuje průtoku aplikace rámce.

Vezměme si příklad, objasnit pojem: Pokud vytvoříte GUI API přes houpačka , programátor potřebuje pouze k provedení obslužné rutiny události vyvolané uživatelem, například stisknutím tlačítka nebo zadáním textu. Rámce je ponecháno na ovládání aplikace toku, jako je například otevírání a zavírání oken.

Tento typ chování se nazývá IoC, protože ovládání se pohybuje vývojář rámce.

Jakmile je jasné, co Mezinárodní olympijský výbor, vidíme, jak se používá na jaře.
Všechny aplikace se skládají z předmětů, které dosáhne předem určené cíle, musí vzájemně spolupracovat, a nevyhnutelně tvoří závislost. Normálně tyto závislosti jsou vyřešeny kód, který je vhodný pro konfiguraci (typicky výrobce). Předpokládejme, že máme zavést třídu pro správu videa obchod:






 it.mrwebmaster balení;









 import java.util.ArrayList;







 import java.util.List;









 {Public class VideoManager





  



 Soukromé DvdService dvdService;





  



 veřejné VideoManager () {



    



 super ();



    



 / **



     



 * Konfigurace a řešení závislostí



     



 * /



    



 this.dvdService DvdServiceImpl = new ();



  



 }





  



 <Dvd> GetAvalaibleDvdList veřejný seznam () {



    



 / **



     



 * Načíst seznam DVD



     



 * /



    



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





    



 / **



     



 * Průchozí seznam DVD najít

 

     



 * Jsou k dispozici



     



 * /



    



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





    



 pro (DVD DVD: dvdList) {



      



 if (dvd.isDisponibile ()) {



        



 availabeDvdList.add (DVD);



      



 }



    



 }





    



 availabeDvdList návrat;



  



 }

	





 }



V tomto příkladu třídy VideoManager má za úkol získat finanční prostředky na seznamu nežádoucích pronajatých DVD. Seznam je získat pomocí služby (DvdService), který načte seznam všech DVD a na kole na seznamu jsou k dispozici DVD. Třída VideoManager, proto má závislost na objektu DvdService, která je řešena v konstruktoru.

Diagramma Dipendenze

Pokud bychom neměli použít jaře jsme měli starat o řešení VideoManager dipendeza v konstruktoru třídy, protože závislost bude vyřešen do jara.
Na jaře, pak je MOV invertovat kontrolu nad závislostí konfiguraci. Z tohoto důvodu bylo vytvořeno Martin Fowler ve svém slavném článku , termín Dependecy Injection (DI), který je někdy používán nesprávně jako synonymum id MOV.
Základní koncept DI je mít samostatný objekt k tomu řešení závislostí a inicializace.

Následující assembler třídy, má za úkol inicializovat třídy DvdService:

Diagramma Assembler

K dispozici jsou tři typy Dependecy Injection:

  • Rozhraní vstřikování
  • Setter vstřikování
  • Konstruktor Injection
Na jaře, jak uvidíme později, jsou uplatňovány pouze konstruktor a setr injekce, ale je také možné inicializovat a vytvoření objektů prostřednictvím objektu výrobny a metody.

Jarní Java Průvodce
E-Learning
Linux (kurz) Linux (kurz)
Kompletní průvodce pro open-source systému. Od 49 €.
PHP (kurz) PHP (kurz)
Celý kurz pro vytváření dynamických webů. Od 49 €.
Ruby a Ruby on Rails (kurz) Ruby a Ruby on Rails (kurz)
Vytvořit software a webových aplikací s Ruby a RoR. Od 39 €.
Sponzorované odkazy