Looking for spring Keywords? Try Ask4Keywords

springAbhängigkeitsinjektion (DI) und Inversion der Kontrolle (IoC)


Bemerkungen

Der Quellcode für große Softwareanwendungen ist normalerweise in mehrere Einheiten organisiert. Die Definition einer Einheit hängt normalerweise von der verwendeten Programmiersprache ab. Beispielsweise ist Code, der in einer prozeduralen Programmiersprache (wie C) geschrieben ist, in functions oder procedures . In ähnlicher Weise ist Code in einer objektorientierten Programmiersprache (wie Java, Scala und C #) in classes , interfaces usw. organisiert. Diese Einheiten der Codeorganisation können als einzelne Einheiten betrachtet werden, die die gesamte Softwareanwendung bilden.

Wenn Anwendungen über mehrere Einheiten verfügen, treten Abhängigkeiten zwischen diesen Einheiten auf, wenn eine Einheit andere Einheiten verwenden muss, um ihre Funktionalität zu vollenden. Die abhängigen Einheiten können als consumers und die Einheiten, von denen sie abhängig sind, als providers bestimmter Funktionen betrachtet werden.

Der einfachste Programmieransatz besteht darin, dass die Verbraucher den Fluss einer Softwareanwendung vollständig steuern, indem sie entscheiden, welche Anbieter an welchen Punkten in der Gesamtausführung der Anwendung instanziiert, verwendet und zerstört werden sollten. Es wird gesagt, dass die Verbraucher während des Ausführungsflusses die volle Kontrolle über die Anbieter haben, die dependencies für die Verbraucher sind. Falls die Anbieter ihre eigenen Abhängigkeiten haben, müssen sich die Verbraucher möglicherweise Gedanken darüber machen, wie die Anbieter initialisiert (und freigegeben) werden sollten, wodurch der Kontrollfluss mit zunehmender Anzahl der Einheiten in der Software immer komplizierter wird. Dieser Ansatz erhöht auch die Kopplung zwischen den Einheiten, wodurch es zunehmend schwieriger wird, die Einheiten einzeln zu wechseln, ohne sich Gedanken darüber machen zu müssen, dass andere Teile der Software beschädigt werden.

Inversion of Control (IoC) ist ein Design-Prinzip, das die Auslagerung von Kontrollflussaktivitäten wie Einheitenerkennung, Instantiierung und Zerstörung in ein von Verbrauchern und Anbietern unabhängiges Rahmenwerk befürwortet. Das grundlegende Prinzip von IoC besteht darin, Verbraucher und Anbieter zu entkoppeln, um Softwareeinheiten von der Entdeckung, Instantiierung und Beseitigung ihrer Abhängigkeiten zu befreien und es den Einheiten zu ermöglichen, sich auf ihre eigenen Funktionen zu konzentrieren. Diese Entkopplung hilft, die Software erweiterbar und wartbar zu halten.

Abhängigkeitsinjektion ist eine der Techniken zum Implementieren des Umkehrung des Steuerprinzips, wobei Fälle von Abhängigkeiten (Anbieter) in eine Softwareeinheit (den Verbraucher) injiziert werden, anstatt dass der Verbraucher sie finden und instanziieren muss.

Das Spring-Framework enthält im Kern ein Abhängigkeitsinjektionsmodul, mit dem Spring-verwaltete Beans als Abhängigkeiten in andere Spring-verwaltete Beans injiziert werden können.

Abhängigkeitsinjektion (DI) und Inversion der Kontrolle (IoC) Verwandte Beispiele