Was ist Model-View-Controller?

Model-View-Controller (MVC) ist eine Art von Softwarearchitektur und Entwurfsmuster, die jedes Element eines Programms in genau definierte Funktionsbereiche unterteilt. In der Model-View-Controller-Architektur befasst sich das Modell mit der gesamten internen Programmlogik, die Daten bearbeitet, speichert, abruft und auf andere Weise verarbeitet und berechnet. Der Ansichtsaspekt ist für die Anzeige von Informationen aus dem Modell für den Benutzer verantwortlich und bietet dem Benutzer auch die Möglichkeit, Eingaben in das Programm vorzunehmen. Die Steuerung nimmt Eingaben aus der Ansicht entgegen, bewertet oder verarbeitet sie auf andere Weise und interagiert mit dem Modell, um Daten oder den Programmstatus zu ändern, der dem Benutzer letztendlich über die Ansicht angezeigt wird. Obwohl das Modell-Viewer-Controller-Design ein Programm zur Verkapselung der Funktionalität erfordert, müssen die drei Abschnitte in irgendeiner Weise miteinander interagieren und sind im Gegensatz zu anderen aggressiveren Designmustern in gewissem Sinne voneinander abhängig.

Sehr häufig wird das Muster "Model-View-Controller" in Anwendungen verwendet, die eine grafische Benutzeroberfläche (GUI) verwalten. Unter Verwendung des MVC-Musters werden die verschiedenen visuellen Elemente der GUI von der Ansicht verwaltet, die Aufzeichnung und Verarbeitung, wo und was ein Benutzer klickt, wird vom Controller verwaltet, und das tatsächliche Ändern von Informationen oder Laden von Informationen wird vom Modell durchgeführt. Abhängig vom genauen Design einer Anwendung kann jede Komponente des MVC-Musters über einen Mechanismus zur Interaktion mit den anderen Komponenten verfügen, z. B. das Modell, das die Ansicht direkt anweisen kann, den Bildschirm zu aktualisieren, oder die Ansicht, die eine Möglichkeit hat, dies mitzuteilen Controller, dass es den Bildschirm aktualisiert und keine neuen Eingaben zu akzeptieren. Im Gegensatz zu einigen Entwurfsmustern, die einen strikten Black-Box-Ansatz verfolgen, sind Model-View-Controller-Programme tendenziell etwas flexibler, obwohl einige Implementierungen es schwierig machen können, ein MVC-Programm zu ändern oder modular zu debuggen.

In bestimmten Fällen muss das Model-View-Controller-Muster nicht nur eine der einzelnen Komponenten enthalten. Ein Beispiel ist eine Anwendung mit mehreren Ansichten, z. B. mehreren Monitoren, oder eine Anzeige, die auf mehreren Clientgeräten angezeigt werden kann. In einer Anwendung können mehrere Ansichten und Controller verwendet werden, mit denen viele Benutzer auf eine Datenbank zugreifen können, wobei alle auf ein einziges Modell antworten. Es ist jedoch üblicher, Systeme zu entwerfen, die ein Eins-zu-Eins-Verhältnis der Modellsicht-Controller-Komponenten aufrechterhalten.

Obwohl die Komponenten des Model-View-Controllers aufeinander angewiesen sind, können bestimmte Teile eines Systems, die das MVC-Muster verwenden, wesentlich einfacher geändert werden, als wenn überhaupt kein Muster verwendet würde, insbesondere bei nicht objektorientierten Systemen anwendungen. Wenn eine Anwendung Callbacks oder Listener und Beobachter verwendet, um Interaktionen zwischen den Komponenten zu implementieren, kann jede Komponente geändert werden, ohne die beiden anderen zu beeinflussen. Dies bedeutet, dass eine neue GUI implementiert werden kann, ohne dass sich dies auf das Modell oder den Controller auswirkt. Es sollte jedoch beachtet werden, dass grundlegende Änderungen an einem Model-View-Controller-System eine geringfügige Neucodierung für jede einzelne Komponente erfordern können.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?