Nach Angaben der Beitrag von Martin Fowler Die Umkehrung der Kontrolle ist das Prinzip, bei dem der Kontrollfluss eines Programms umgekehrt wird: Anstatt dass der Programmierer den Fluss eines Programms kontrolliert, übernehmen die externen Quellen (Rahmen, Dienste, andere Komponenten) die Kontrolle darüber. Es ist, als ob wir etwas in etwas anderes einstecken. Er erwähnte ein Beispiel über EJB 2.0:
Zum Beispiel die Session Bean Schnittstelle definiert ejbRemove, ejbPassivate (Speicherung im Sekundärspeicher) und ejbActivate (Wiederherstellung aus passiven Zustand). Sie haben keine Kontrolle darüber, wann diese Methoden aufgerufen werden, sondern nur was sie tun. Der Container ruft uns auf, wir rufen ihn nicht auf.
Dies führt zu dem Unterschied zwischen Framework und Bibliothek:
Die Umkehrung der Kontrolle ist ein wichtiger Bestandteil der was ein Framework von einer Bibliothek unterscheidet. Bibliothek unterscheidet. Eine Bibliothek ist im Wesentlichen eine Satz von Funktionen, die Sie aufrufen können, Heutzutage üblicherweise organisiert in Klassen. Jeder Aufruf erledigt etwas Arbeit und gibt die Kontrolle an den Client zurück.
Ich denke, dass die Sichtweise, dass DI IOC ist, bedeutet, dass die Abhängigkeit eines Objekts umgekehrt ist: anstatt dass es seine eigenen Abhängigkeiten, seinen Lebenszyklus... kontrolliert, macht das etwas anderes für Sie. Aber, wie Sie mir über DI mit den Händen gesagt haben, ist DI nicht unbedingt IOC. Wir können immer noch DI und kein IOC haben.
In diesem Papier (von pococapsule, einem anderen IOC-Framework für C/C++) wird jedoch vorgeschlagen, dass die IOC-Container und DI-Frameworks aufgrund von IOC und DI J2EE weit überlegen sind, da J2EE den Framework-Code in die Komponenten einmischt und sie somit nicht zu Plain Old Java/C++ Object (POJO/POCO) macht.
Inversion der Kontrolle Andere Container als das Dependency Injection Muster (Archiv-Link)
Weitere Lektüre, um zu verstehen, was das Problem mit dem alten komponentenbasierten Entwicklungsrahmen ist, was zu dem oben genannten zweiten Papier führt: Warum und was ist die Umkehrung der Kontrolle? (Archiv-Link)
Meine Frage : Was genau sind IOC und DI? Ich bin verwirrt. Ausgehend von pococapsule ist IOC etwas Bedeutsameres als nur die Umkehrung der Kontrolle zwischen Objekten oder Programmierern und Frameworks.
5 Stimmen
Hier ist ein guter Beitrag zu diesem Thema, IoC vs DI (Dependency Inject) vs SL (Service Locator): tinyurl.com/kk4be58 - Auszug aus der Url: IoC vs. DI (Dependency Injection)? IoC ist das allgemeine Konzept, bei dem die Kontrolle des Flusses Umgekehrt vom Client-Code zum Framework, das "etwas für den Client tut". SL (Service Locator) und DI (Dependency Injection) sind zwei Entwurfsmuster, die sich von IoC ableiten.
0 Stimmen
Falls jemand daran interessiert ist, wie Dependency Injection in einem Coffeeshop-Theme hilfreich sein kann, habe ich hier einen Artikel darüber geschrieben: digigene.com/design-patterns/dependency-injection-coffeeshop
3 Stimmen
Anständiger Artikel für Anfänger asimplify.com/dependency-injection-inversion-control
0 Stimmen
Umkehrung der Abhängigkeiten: Abhängigkeit von Abstraktionen, nicht von Konkretionen. Inversion der Kontrolle: Main vs. Abstraktion, und wie die Main ist der Klebstoff der Systeme. Dies sind einige gute Beiträge zu diesem Thema: coderstower.com/2019/03/26/ coderstower.com/2019/04/02/ coderstower.com/2019/04/09/
1 Stimmen
Lesen Sie über diese tief, Es wird alle löschen martinfowler.com/articles/