Was ist die Umkehrung der Kontrolle?
Inversion of Control (IoC) ist eine Programmiertechnik, bei der eine allgemeine Codestruktur verwendet wird, um eine Reihe eindeutiger und spezifischer Subroutinen zu steuern. Dies stellt herkömmliche Programmiermethoden, bei denen ein bestimmter Code eine Reihe von wiederverwendbaren und allgemeinen Unterroutinen regelt, auf den Kopf. Die Umkehrung der Steuerung wird normalerweise in Situationen verwendet, in denen der Programmierer weiß, dass er einen bestimmten Code nicht mehr als einmal wiederverwenden muss, was ein flexibles Design ermöglicht, bei dem die Unterprogramme eines Programms ohne wesentliche Änderungen am Gesamtprogramm ein- und ausgeschaltet werden können .
Traditionelle versus IoC-Programmierung
Bei der herkömmlichen Programmierung fordert der Hauptteil des Codes wiederholt allgemeine Unterprogramme an, die einzelne Funktionen ausführen. Beispielsweise wird in einem Programm, das sich mit Buchhaltung befasst, eine Unterroutine, die es dem Endbenutzer ermöglicht, nach einer bestimmten Auftragsnummer zu suchen, wahrscheinlich mehrmals in verschiedenen Abschnitten des Programms aufgerufen, so dass der Benutzer diesen sehr allgemeinen Suchalgorithmus von ausführen kann eine Reihe von verschiedenen Bereichen des Programms. Die Wiederverwendung des Codes vereinfacht den Programmiervorgang, schafft jedoch Komplexitäten, wenn der Programmierer den Suchalgorithmus für einen Abschnitt des Programms optimieren möchte, ohne die anderen Abschnitte zu beeinflussen, in denen der Code verwendet wird.
Bei Verwendung des gleichen Beispiels unter einer Umkehrung des Steuerungsszenarios würde die einzelne Suchsubroutine nicht mehrmals über mehrere Bereiche des Programms aufgerufen. Stattdessen würde jeder Abschnitt des Programms eine eigene, vollständig in sich geschlossene Suchroutine enthalten. Dies erhöht die Zeit, die zum anfänglichen Codieren des Programms benötigt wird, vereinfacht jedoch alle spezifischen Optimierungen, die möglicherweise später an einzelnen Unterroutinen im Entwurfsprozess vorgenommen werden müssen. Durch Ändern eines Unterprogramms in einem bestimmten Bereich bleibt der Rest des Programms vollständig unberührt.
Vorteile von IoC
Ein wesentlicher Vorteil dieser Technik besteht darin, dass das Programmdesign bei der Arbeit in großen Teams erheblich vereinfacht wird. Da die Kommunikation zwischen den Teammitgliedern mit zunehmender Anzahl der Mitarbeiter immer schwieriger wird, kann jedes Team durch die Umkehrung der Kontrolle seine eigenen individuellen Routinen programmieren, so dass sie unabhängig voneinander arbeiten können. Es vereinfacht auch die Auswirkung von Fehlern im System, da alle verbleibenden Fehler in den Unterroutinen der einzelnen Teams nur ihre spezifischen Programmabschnitte betreffen. Aus diesem Grund sollte der Rest des Programms voll funktionsfähig bleiben, wenn in einem Teil des Systems Probleme festgestellt werden.
Nachteile von IoC
Während die Umkehrung der Steuerung das Programmdesign vereinfachen kann, sind Vorkenntnisse zum Entwerfen von Objekten erforderlich. Während jede Routine einzeln programmiert werden kann, muss ein IoC-Ersteller wissen, wie jedes Element zu programmieren ist, falls Änderungen vorgenommen werden müssen, so dass es für einen beginnenden Programmierer nicht immer einfach ist, IoC einzusetzen. Da jede Routine unabhängig voneinander funktioniert, werden sie auch alle für die Außenwelt sichtbar gemacht, was von einigen Unternehmen missbilligt werden kann.