..


Sponsored Links

IoC und DI (Inversion of Control und Dependency Injection)

'S Inversion of Control (IOC) ist ein typisches Merkmal des Rahmens, der die Ablaufsteuerung bewegt sich durch die Anwendung auf den Rahmen selber.

Nehmen wir ein Beispiel, um das Konzept zu verdeutlichen: Wenn Sie eine erstellen GUI -API durch Swing , der Programmierer muss nur die Handler der Ereignisse durch den Anwender ausgelöst werden, wie das Drücken einer Taste oder die Eingabe von Text implementieren. Framework ist links, um die Anwendung fließen, wie das Schließen und Öffnen der Fenster zu kontrollieren.

Diese Art von Verhalten wird als IoC, weil die Kontrolle durch den Entwickler des Frameworks bewegt wird.

Sobald klar ist, was das IOC, wir, wie es im Frühjahr eingesetzt wird sehen.
Alle Anwendungen bestehen aus Objekten, die die vorgegebenen Ziele müssen miteinander kooperieren, und zwangsläufig Abhängigkeit gebildet erreichen. Normalerweise werden diese Abhängigkeiten sind durch einen Code, der für die Konfiguration (in der Regel der Hersteller) gelöst ist. Angenommen, wir haben eine Klasse für die Verwaltung einer Videothek zu implementieren:






 it.mrwebmaster Paket;









 Import java.util.ArrayList;







 Import java.util.List;









 {Public class VideoManager





  



 Privat DvdService dvdService;





  



 öffentlichen VideoManager () {



    



 super ();



    



 / **



     



 * Konfiguration und Auflösung von Abhängigkeiten



     



 * /



    



 this.dvdService DvdServiceImpl = new ();



  



 }





  



 <DVD> GetAvalaibleDvdList public List () {



    



 / **



     



 * Rufen Sie die Liste der DVD



     



 * /



    



 Liste <DVD> dvdList dvdService.getDvdList = ();





    



 / **



     



 * Schleife durch die Liste der DVDs zu finden

 

     



 * Die zur Verfügung



     



 * /



    



 List = new ArrayList <DVD> availabeDvdList <DVD> ();





    



 for (DVD DVD: dvdList) {



      



 if (dvd.isDisponibile ()) {



        



 availabeDvdList.add (DVD);



      



 }



    



 }





    



 availabeDvdList return;



  



 }

	





 }



In diesem Beispiel wird die Klasse VideoManager hat die Aufgabe, für die Wiederherstellung der Liste der nicht vermieteten DVD. Die Liste ist abrufbar unter Verwendung eines Dienstes (DvdService), die eine Liste aller DVDs abruft, und Radfahren auf der Liste sind die DVD zur Verfügung. Die Klasse VideoManager hat daher eine Abhängigkeit von der Objekt DvdService, die im Konstruktor behoben ist.

Diagramma Dipendenze

Hätten wir nicht genutzt Frühling sollten wir haben, zur Lösung des dipendeza VideoManager im Konstruktor der Klasse, da die Abhängigkeit von Spring gelöst wäre kümmern.
Im Frühjahr, dann ist das IOC verwendet, um die Kontrolle über die Konfiguration Abhängigkeiten umkehren. Aus diesem Grund wurde es von Martin Fowler geprägt, in seinem berühmten Artikel , den Begriff Dependecy Injection (DI), die manchmal verwendet wird fälschlicherweise als Synonym IoC id.
Das Grundkonzept der DI ist mit einem separaten Objekt, um die Auflösung von Abhängigkeiten und Initialisierung zu tun haben.

Die folgenden Assembler-Klasse hat die Aufgabe, die Klasse DvdService initialisieren:

Diagramma Assembler

Es gibt drei Arten von Dependecy Injection:

  • Schnittstelle Injektion
  • Setter Injection
  • Constructor Injection
Im Frühjahr, wie wir später sehen werden, sind nur Constructor und Setter Injection durchgeführt, aber es ist auch möglich, zu initialisieren und Erstellen von Objekten durch das Object Factory und Factory Method.

Spring Java-Führer
E-Learning
Linux (Kurs) Linux (Kurs)
Ein vollständiger Reiseführer von Open-Source-System. Von 49 €.
PHP (Kurs) PHP (Kurs)
Vollständige natürlich für die Erstellung dynamischer Websites. Von 49 €.
Ruby und Ruby on Rails (Kurs) Ruby und Ruby on Rails (Kurs)
Neues Software-und Web-Anwendungen mit Ruby und RoR. Von 39 €.
Sponsored Links