„Inversion of Control“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
K Bot: Ändere: ru:Обращение контроля |
Paradigmata (Beispiele, Vorbilder, Muster) beschreiben nichts. |
||
(34 dazwischenliegende Versionen von 31 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Der Begriff '''Inversion of Control''' (''' |
Der Begriff '''Inversion of Control''' ('''IoC''', {{deS|''Umkehrung der Steuerung''}} oder ''Steuerungsumkehr'') bezeichnet ein [[Paradigma#Verwendungsbeispiele|Umsetzungsparadigma]], das u. a. in der [[Objektorientierte Programmierung|objektorientierten Programmierung]] Anwendung findet. |
||
Dieses [[Paradigma]] |
Dieses [[Programmierparadigma|Paradigma]] ist die Arbeitsweise von [[Framework]]s: eine [[Funktion (Programmierung)|Funktion]] eines [[Anwendungsprogramm]]s wird bei einer [[Programmbibliothek|Standardbibliothek]] registriert und von dieser zu einem späteren Zeitpunkt aufgerufen. Statt dass die Anwendung den [[Kontrollfluss]] steuert und lediglich Standardfunktionen benutzt, wird die Steuerung der Ausführung bestimmter [[Unterprogramm]]e an das Framework abgegeben. |
||
⚫ | Ein einfaches Beispiel einer solchen Umkehrung sind ''Listener'' (gemäß dem [[Beobachter (Entwurfsmuster)|Beobachter-Muster]]), aber auch [[Java-Applet]]s und [[Servlet]]s folgen diesem Entwurfsmuster. [[Plug-in]]s und [[Rückruffunktion]]en (callback) sind weitere Beispiele dafür, die Steuerung einzelner Programmteile einem (Framework-)Objekt zu überlassen. |
||
Somit funktionieren fast alle modernen Programmiersprachen nach dem Prinzip ''Inversion of Control'': Ein vordefiniertes Framework bildet das Hauptprogramm. Der Programmierer, der eine neue Anwendung auf Basis des Frameworks bzw. der Bibliothek erstellen möchte, hat keinen oder nur wenig Einfluss auf die Steuerung dieses Hauptprogramms. Er kann nur bestimmte [[Funktion (Programmierung)|Funktionen]] implementieren. Diese werden dann durch das Framework aufgerufen. Dies steht im Gegensatz zum klassischen Programmieransatz, bei dem der Programmierer das Hauptprogramm selber schreibt und einzelne Funktionen aufruft, die aus einer Bibliothek stammen. Im klassischen Ansatz ist die Kontrolle hauptsächlich in dem vom Programmierer erstellten Programm. Dieses wird kurzzeitig an andere vordefinierte Funktionen abgegeben. Bei ''Inversion of Control'' liegt die Kontrolle hauptsächlich im Framework, welches dann eine Funktion des Programmierers aufruft und somit kurzzeitig die Kontrolle an diese abgibt. |
|||
⚫ | |||
⚫ | |||
== Siehe auch == |
|||
⚫ | Häufig ist auch bei Bibliotheken, die mit ''[[Dependency Injection]]'' arbeiten (wie z. B. [[EJB-Container]] oder |
||
* [[Fabrikmethode]] |
|||
* [[Komponentenmodell]] |
|||
== Weblinks == |
|||
* [[Liste von Dependency Injection Frameworks]] |
|||
*[http://www.objectmentor.com/resources/articles/dip.pdf Robert Martin: The Dependency Inversion Principle] (Englisch) |
|||
{{Navigationsleiste Entwurfsmuster}} |
|||
[[Kategorie:Softwarearchitektur]] |
[[Kategorie:Softwarearchitektur]] |
||
[[en:Inversion of control]] |
|||
[[fr:Inversion de contrôle]] |
|||
[[hu:Inversion of control]] |
|||
[[nl:Inversion of Control]] |
|||
[[nn:Inversion of Control]] |
|||
[[no:Inversion of Control]] |
|||
[[pl:Odwrócenie sterowania]] |
|||
[[pt:Inversão de controle]] |
|||
[[ru:Обращение контроля]] |
|||
[[sv:Inversion of Control]] |
|||
[[tr:Inversion of Control]] |
|||
[[zh:控制反转]] |
Aktuelle Version vom 25. Dezember 2021, 18:32 Uhr
Der Begriff Inversion of Control (IoC, deutsch Umkehrung der Steuerung oder Steuerungsumkehr) bezeichnet ein Umsetzungsparadigma, das u. a. in der objektorientierten Programmierung Anwendung findet.
Dieses Paradigma ist die Arbeitsweise von Frameworks: eine Funktion eines Anwendungsprogramms wird bei einer Standardbibliothek registriert und von dieser zu einem späteren Zeitpunkt aufgerufen. Statt dass die Anwendung den Kontrollfluss steuert und lediglich Standardfunktionen benutzt, wird die Steuerung der Ausführung bestimmter Unterprogramme an das Framework abgegeben.
Ein einfaches Beispiel einer solchen Umkehrung sind Listener (gemäß dem Beobachter-Muster), aber auch Java-Applets und Servlets folgen diesem Entwurfsmuster. Plug-ins und Rückruffunktionen (callback) sind weitere Beispiele dafür, die Steuerung einzelner Programmteile einem (Framework-)Objekt zu überlassen.
Häufig ist auch bei Bibliotheken, die mit Dependency Injection arbeiten (wie z. B. EJB-Container oder dem Spring-Framework), von Inversion of Control zu lesen. Hier geht es aber vorwiegend um die Erzeugung von Objektnetzen.