Model-View-Controller (MVC) Architekturmuster
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 4,08 KB
Das Model-View-Controller (MVC) ist ein Architekturmuster für Software, das die Daten einer Anwendung, die Benutzeroberfläche und die Steuerlogik in drei separate Komponenten unterteilt. Das MVC-Muster wird häufig in Webanwendungen verwendet, wobei die View (Ansicht) die HTML-Seite und der Code ist, der dynamische Daten für die Seite bereitstellt. Das Model (Modell) ist das Datenbank-Management-System und die Business-Logik, und der Controller (Steuerung) ist für den Empfang von Eingabe-Ereignissen aus der View verantwortlich.
Beschreibung des MVC-Musters
Modell (Model)
Dies ist die spezifische Darstellung der Informationen, mit denen das System arbeitet. Zusammenfassend lässt sich sagen, dass das Modell nicht direkt an die View gebunden ist und keine komplexen visuellen Präsentationen berücksichtigen muss. Das System kann auch mit weiteren Datenformaten arbeiten, die mittels integrierter Business-Logik und anderer mit dem modellierten System verbundener Daten verarbeitet werden.
Ansicht (View)
Die Ansicht zeigt das Modell in einer geeigneten Form für die Interaktion, in der Regel über die Benutzeroberfläche.
Controller
Der Controller reagiert auf Ereignisse (in der Regel Benutzeraktionen), ruft Zugriffe auf das Modell auf und beeinflusst die Ansicht (View) nicht direkt.
Viele Computersysteme verwenden ein Datenbank-Management-System zur Verwaltung ihrer Daten, was im Großen und Ganzen dem Model des MVC entspricht. Die Verbindung zwischen Präsentationsschicht und Business-Schicht stellt die Integration zwischen der View (Ansicht) und dem zugehörigen Controller sowie den geschichteten Datenzugriffsereignissen dar. Das klassische MVC unterscheidet nicht explizit zwischen Business-Layer und Presentation Layer. Wenn jedoch separate visuelle Ebenen (grafische Programmierung) und Datenzugriffsebenen entworfen werden, verbessert dies die parallele Entwicklung und Wartung von View und Controller, da beide unterschiedliche Lebenszyklen aufweisen können.
Der typische Kontrollfluss im MVC-Muster
Obwohl verschiedene Implementierungen von MVC existieren, erfolgt der Kontrollfluss im Allgemeinen wie folgt:
- Der Benutzer interagiert mit der Benutzeroberfläche in irgendeiner Weise (z. B. klickt der Benutzer auf eine Schaltfläche, einen Link usw.).
- Der Controller empfängt (vom UI-Objekt der View) die Benachrichtigung über die vom Benutzer gewünschte Aktion. Der Controller verarbeitet das eingehende Ereignis, häufig mithilfe eines Event-Handlers oder Callbacks.
- Der Controller greift auf das Modell zu, um es zu aktualisieren oder entsprechend der Benutzeraktion zu modifizieren (zum Beispiel fordert der Controller Updates für den Warenkorb des Benutzers an). Komplexe Controller sind oft mit einem Command Pattern strukturiert, das die Aktionen kapselt und vereinfacht.
- Der Controller delegiert an die View-Objekte die Aufgabe, die Benutzeroberfläche bereitzustellen. Die View fragt ihre Daten beim Modell ab, um die entsprechende Benutzeroberfläche zu generieren, welche die Änderungen im Modell widerspiegelt (zum Beispiel wird eine Auflistung des Warenkorbinhalts erstellt). Das Modell sollte keine unmittelbaren Kenntnisse über die View haben. Allerdings könnte es das Observer-Muster verwenden, um eine gewisse Indirektion zwischen Modell und View zu vermitteln, sodass das Modell die Betroffenen über alle Änderungen in Kenntnis setzt. Ein View-Objekt kann sich beim Modell registrieren und auf Änderungen warten, obwohl das Modell selbst nichts über die View weiß. Der Controller muss die Domain-Objekte (das Modell) nicht übergeben, bevor er den Auftrag zur Aktualisierung der Ansicht gibt. Hinweis: In einigen Implementierungen hat die View keinen direkten Zugriff auf das Modell, sodass der Controller die Modelldaten an die View senden muss.
- Die Benutzeroberfläche wartet auf weitere Benutzerinteraktionen, und der Zyklus beginnt von Neuem.