Model-View-Controller (MVC) · Mindmaps
Model-View-Controller (MVC). Eine bearbeitbare Mindmap mit farbigen Zweigen, Unterthemen und Verbindungen. Geschwungene Linien zeigen Beziehungen; Pfeile stehen nur dort, wo die Richtung wichtig ist.
MVC teilt eine Anwendung in drei Teile mit einer Regel: Der Controller nimmt die Eingabe entgegen, das Model besitzt Zustand und Regeln, und die View rendert das Model, und weder die View noch der Controller fasst den Zustand direkt an.
Model-View-Controller (MVC) · Mindmaps
Die interaktive MindMap-Zeichenfläche zu dieser Erklärung — jede Bahn, jede Zeile und jeder Pfeil oben gehört zu einem echten QueryChart-Diagramm, das Sie öffnen und bearbeiten können.
So lesen Sie diese Mindmap
- Beginnen Sie beim Thema in der Mitte und folgen Sie einem farbigen Zweig zu den zugehörigen Ideen.
- Geschwungene Linien zeigen Beziehungen; Pfeile stehen nur dort, wo die Richtung wichtig ist.
User input
Dieser Zweig verbindet “User interacts with the interface”.
Controller
Dieser Zweig verbindet “The controller is the traffic cop: it reads the user's action, decides what it means and tells the model what to change. It holds no state itself.”, “Controller updates the model”.
Model
Dieser Zweig verbindet “The model is the single source of truth — data and the rules that govern it. Both the controller and the view read from it, which is why they never fight over state.”, “Model notifies observers of the change”.
View
Dieser Zweig verbindet “The view is a projection of the model: it never changes data directly, it only asks the model and displays what it returns.”, “User sees the updated interface”.
Verbindungen zwischen den Zweigen
Der Controller nimmt die Eingabe entgegen, das Model besitzt den Zustand, die View rendert: drei Zuständigkeiten, drei Bahnen.
Weder die View noch der Controller schreibt Daten; alle Änderungen laufen durch das Model.
Das Model meldet an Observer, statt der View Befehle zu geben, und deshalb kann ein Model viele Views versorgen.
Die Trennung macht jeden Teil für sich prüfbar: der ursprüngliche Gewinn des Musters.
MVC ist der Vorfahr vieler moderner Muster (MVVM, MVP, Stores im Redux-Stil), die alle dieselbe Trennung bewahren.
Wichtige Zusammenhänge und Erkenntnisse
- Der Controller nimmt die Eingabe entgegen, das Model besitzt den Zustand, die View rendert: drei Zuständigkeiten, drei Bahnen.
- Weder die View noch der Controller schreibt Daten; alle Änderungen laufen durch das Model.
- Das Model meldet an Observer, statt der View Befehle zu geben, und deshalb kann ein Model viele Views versorgen.
- Die Trennung macht jeden Teil für sich prüfbar: der ursprüngliche Gewinn des Musters.
- MVC ist der Vorfahr vieler moderner Muster (MVVM, MVP, Stores im Redux-Stil), die alle dieselbe Trennung bewahren.
Wann Sie diese Darstellung nutzen
- Einer Entwicklerin oder einem Entwickler das Muster vorstellen, bevor sie die Dokumentation eines Frameworks lesen: das Dreieck ist die Karte, die jedes Framework umsetzt.
- Erklären, warum sich eine Codebasis schwer ändern lässt: Zustand, der in der View verwaltet wird, verstößt gegen MVC, und auf der Zeichenfläche ist das sichtbar.
- MVC mit den geschichteten Architekturen der Darstellung zur Clean Architecture vergleichen.
So funktioniert es
Mittleres Thema anpassen
Benennen Sie das Thema für Ihr Projekt oder Ihren Unterricht um.
Zweige ausbauen
Bearbeiten Sie Ideen und ergänzen Sie Beispiele oder Notizen.
Ideen verbinden
Zeichnen Sie Verbindungen zwischen Zweigen; Pfeile zeigen eine wichtige Richtung an.
Häufig gestellte Fragen
Was ist MVC?
MVC (Model-View-Controller) ist ein Softwaremuster, das eine Anwendung in drei Teile trennt: Der Controller nimmt die Eingabe entgegen, das Model besitzt die Daten und die Geschäftsregeln, und die View rendert das Model. Der Gewinn dieser Trennung ist, dass sich jeder Teil unabhängig entwickeln und prüfen lässt und dass dasselbe Model von vielen Views gezeigt werden kann. Es ist das Muster, auf dem die meisten Web-Frameworks aufbauen.
Warum steht das Model im Zentrum von MVC?
Weil das Model die einzige Quelle der Wahrheit ist. Könnten Controller und View beide Daten schreiben, würden sie auseinanderlaufen und über den Zustand streiten. Alle Änderungen im Model zu halten bedeutet, dass es genau einen Ort für die Datenregeln gibt und die View immer die Projektion eines stimmigen Models ist. Genau deshalb stellt die Darstellung beide Kästen des Models in eine eigene Bahn.
Was passiert, wenn ich Logik in die View lege?
Sie erhalten ein Anti-Pattern, das gelegentlich „fat view“ genannt wird: Anzeigecode vermischt mit Geschäftsregeln, der sich ohne Rendern nicht prüfen lässt und vom Model abdriftet. Dieselbe Kritik trifft einen Controller, der Geschäftslogik hält, statt sie weiterzureichen. Die Disziplin von MVC lautet, dass jede Bahn in ihrer Bahn bleibt: die drei getrennten Zeilen der Darstellung sind diese Regel, sichtbar gemacht.
Wie verhält sich MVC zu modernen Frameworks?
Die meisten modernen Frameworks bewahren das Dreieck unter neuen Namen: MVVM ergänzt eine Schicht View-Model, MVP gibt der View einen Presenter, und Bibliotheken zur Zustandsverwaltung wie Redux sind im Kern das Model mit einer strengeren Regel für Benachrichtigungen. Die zentrale Schleife der Zeichenfläche (die Eingabe ändert den Zustand, der Zustand treibt die Ausgabe) ist die Konstante, die jede von ihnen behält.
Diese Mindmap in QueryChart bearbeiten
Öffnen Sie die Mindmap auf einer bearbeitbaren Leinwand. Verschieben Sie Ideen und ergänzen Sie Zweige und Verbindungen.