Wenn Sie das klassische Beispiel eines Autos nehmen. Sie könnten durch den regulären Autokauf gehen und die Räder nehmen, die der Hersteller Ihnen gibt:
%Vor%Dann:
%Vor%Oder Sie können einen benutzerdefinierten Autohersteller finden, mit dem Sie genau bestimmen können, welche Art von Rad Ihr Auto verwenden soll, solange sie den Spezifikationen eines Rades entsprechen:
%Vor%Dann:
%Vor%Aber jetzt können Sie jedes beliebige Rad injizieren, das Sie wollen. Denken Sie daran, dass dies nur eine Art von Dependency Injection (Konstruktor Injektion) ist, aber es ist eines der einfachsten Beispiele.
Es gibt ein paar verschiedene Analogien, die das Verständnis der Inversion der Kontrolle erleichtern. Wir erleben dies auf viele verschiedene Arten im normalen Leben, also leihen wir das Formular im Code aus. Eine Analogie wird im Militär die "Befehlskette" genannt.
Dies ist wahrscheinlich die klarste Parallele zur Inversion der Kontrolle. Das Militär stellt jedem neuen Rekruten die grundlegenden Dinge zur Verfügung, die er benötigt, um in seinem Rang zu operieren, und er gibt Befehle aus, die Rekruten befolgen müssen. Das gleiche Prinzip gilt für den Code. Jede Komponente erhält die Bestimmungen, die sie benötigt, um von der instanziierenden Einheit (d. H. Kommandierender Offizier in dieser Analogie) zu operieren. Die Instanz wirkt dann auf diese Komponente ein, wie sie agieren muss.
Mehr hier:
Hat jemand eine gute Analogie für die Abhängigkeitsinjektion?
Tags und Links dependency-injection inversion-of-control