WikiDer > Modellansicht-Controller-Modell

Model-view-controller-model
Verteilung in einem Model-View-Controller.
Interaktionen zwischen den MVC-Komponenten.

Model View Controller (oder MVC) ist a Designmuster ("Design Pattern"), das den Entwurf komplexer Anwendungen in drei Einheiten mit unterschiedlichen Verantwortlichkeiten unterteilt: Datenmodell (Modell), Datenpräsentation (View) und Anwendungslogik (Controller). Die Trennung dieser Verantwortlichkeiten fördert die Lesbarkeit und Wiederverwendbarkeit des Codes. Es bedeutet auch, dass sich beispielsweise Änderungen in der Benutzeroberfläche nicht direkt auf das Datenmodell auswirken und umgekehrt. MVC wurde erstmals in den frühen Implementierungen von Smalltalk.

Musterbeschreibung

Modemodell
Definiert die Darstellung der Informationen, mit denen die Anwendung arbeitet. Rohdaten erhalten Bedeutung, indem Beziehungen zwischen Daten und Logik hinzugefügt werden. Die eigentliche Speicherung der Daten erfolgt über ein persistentes Speichermedium, wie z Datenbank. Die Anwendung ruft die im Modell verwendeten Daten ab und schreibt sie über eine Datenschicht in den und aus dem Datenspeicher. Die Datenschicht ist nicht unbedingt Teil des MVC-Musters.
Aussicht
Informationen werden über die Ansicht angezeigt. In diesem Abschnitt werden Benutzeroberflächenelemente definiert. Die Ansicht führt keine Verarbeitung (wie Berechnungen, Prüfungen,...) der angezeigten Daten durch.
Regler
Der Controller verarbeitet und reagiert auf Ereignisse, die normalerweise das Ergebnis von Benutzeraktionen sind.

Operation

Neben der Aufteilung der Logik in verschiedene Klassen basiert das Muster auf einem komplexen Zusammenspiel von Nachrichten zwischen Objekten dieser Klassen. Grundsätzlich wird jede Ansicht, die aktualisiert werden muss, wenn Änderungen am Modell vorgenommen werden, das Modell durch Registrierung beim Modell benachrichtigen. Das Modell führt somit eine Liste aller registrierten Ansichten. Beim Modifizieren des Modells aktualisiert sich das Modell selbst, indem es die Liste der Ansichten durchgeht und an jede Ansicht meldet, dass eine Änderung aufgetreten ist. Daraufhin „fragt“ jede Ansicht das Modell, was sich geändert hat und entscheidet dann, ob es angepasst wird oder nicht.

Der Benutzer hat Kontakt mit der Ansicht. Die Ansicht übergibt (neue oder geänderte) Daten an die Steuerung. Der Verantwortliche verarbeitet die Daten. Die verarbeiteten Daten werden an das Modell weitergegeben. Es wird nicht empfohlen, die Ansicht direkt mit dem Modell zu verknüpfen.

Sichtweite

Der Controller kennt die Ansicht und das Modell Die Ansicht kennt das Modell Das Modell kennt keine Ansichten, was die Erweiterung der Anwendung erleichtert.

Leistungen

Der große Vorteil des Musters besteht darin, dass neue Ansichten sehr einfach hinzugefügt werden können, ohne das Modell zu ändern. So war es in 1994 Programmierung in Smalltalk über ein Webinterface bereits möglich. Smalltalk einfach umgesetzt a html-Ansicht von selbst. Das Ergebnis war VisualWave, eine Webversion von VisualWorks (der Name des Smalltalk-Systems). Möglich wurde dies dadurch, dass die gesamte Smalltalk-Entwicklungsumgebung komplett nach dem MVC-Muster geschrieben wurde.

Implementierungen

Vor dem Java Es gibt viele MVC-Frameworks. berühmt sein Streben, JavaFX und springen.Das MVC-Framework für Rubin ist Rubin auf Schienen. Vor dem Python ist Django das bekannteste MVC-Framework. Bekannte MVC-Frameworks für PHP sein Sende-Framework, Codezünder, Kohana, laravel, KuchenPHP und Phalcon.Für Microsoft .NET gibt es MonoRail, Vici MVC und eine native .NET-Implementierung namens Microsoft ASP.NET MVC. Vor dem Adobe Cold Fusion umfassen Mach-II, Model-Glue und ColdBox. Für Perl gibt es das Catalyst-Framework.

Siehe auch