Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

Model-View-Controller (MVC) einfach erklärt

Du lernst Model, View und Controller kennen, verfolgst Abläufe im klassischen MVC und im Web und grenzt MVC von Schichten ab.

0 von 13 Aufgaben gelöst

Model-View-Controller (MVC) einfach erklärt

Kurz gesagt

MVC teilt Software in Modell (Daten), Ansicht (Darstellung) und Steuerung (Controller). Klassisch meldet das Modell Änderungen per Beobachter-Muster. Im Web vermittelt meist der Controller zwischen Model und View. In Schichten kann MVC die Oberflächenschicht umsetzen.

Stell dir eine App vor, die Aktienkurse anzeigt. Sie holt Daten, zeigt sie an und reagiert auf Klicks. Wenn alles in einem Knäuel steckt, ist jede Änderung mühsam. MVC ist ein Ordnungsprinzip, das dieses Knäuel in drei Rollen aufteilt.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Große Programme werden schnell unübersichtlich. Model View Controller (MVC) teilt eine Software deshalb in drei Komponenten: Datenmodell, Ansicht und Programmsteuerung. Das ist ein Entwurfsmuster. Ein Entwurfsmuster ist eine bewährte Lösungsschablone für ein Problem, das beim Entwurf von Software immer wieder auftaucht. MVC kann sowohl als Architekturmuster als auch als Entwurfsmuster eingesetzt werden.

Ziel ist ein flexibler Programmentwurf. Eine spätere Änderung oder Erweiterung soll leichter werden, und die einzelnen Komponenten sollen sich wiederverwenden lassen.

Das Modell (englisch model) enthält die Daten, die von der Ansicht dargestellt werden. Es ist von Ansicht und Steuerung unabhängig. Die Ansicht (englisch view) stellt die Daten des Modells dar und setzt Benutzerinteraktionen um. Sie kennt das Modell, ist aber nicht für die Verarbeitung der Daten zuständig. Die Steuerung (englisch controller) verwaltet Ansicht und Modell. Sie wertet Benutzerinteraktionen aus und nimmt danach Anpassungen an der Ansicht und Änderungen an den Daten im Modell vor.

Wie stark die drei Komponenten voneinander abhängen, hängt von der Umsetzung ab. Ein Vorteil der Trennung: Es ist zum Beispiel möglich, dasselbe Modell für Windows, Mac, Linux oder für das Internet zu nutzen. Dann müssen nur Controller und View jeweils neu umgesetzt werden.

Definition

Model View Controller (MVC)

Ein Entwurfsmuster, das eine Software in die drei Komponenten Datenmodell (model), Ansicht (view) und Programmsteuerung (controller) unterteilt.

KomponenteAufgabeBeziehung
ModellEnthält die DatenUnabhängig von Ansicht und Steuerung
AnsichtStellt die Daten dar, setzt Benutzerinteraktionen umKennt das Modell, ist von der Steuerung unabhängig
SteuerungWertet Interaktionen aus, ändert Ansicht und DatenVerwaltet Ansicht und Modell

Merke: Das Modell hält die Daten, die Ansicht zeigt sie und nimmt Eingaben entgegen, die Steuerung wertet Eingaben aus und ändert Ansicht und Daten.

Teste dich

LeichtWas ist die Aufgabe der Ansicht (View)?
MittelDasselbe Modell soll für Windows, Mac, Linux und das Internet genutzt werden. Was muss jeweils neu umgesetzt werden?

Alles auf einen Blick

Model-View-Controller

  • Modell

    enthält die Daten und ist von Ansicht und Steuerung unabhängig

  • Ansicht

    stellt die Daten dar und setzt Benutzerinteraktionen um, verarbeitet sie aber nicht

  • Steuerung

    wertet Benutzerinteraktionen aus und ändert Ansicht und Daten im Modell

  • Klassisches MVC

    Das Modell meldet Änderungen nach dem Beobachter-Muster an die Views

  • Web

    Der Controller vermittelt meist zwischen Model und View im Request-Response-Cycle

  • Schichten

    MVC kann bei großer Software die Benutzeroberflächenschicht umsetzen

Musteraufgabe · Schritt für Schritt

Drei Teile einer Wetter-App zuordnen (ausgedachtes Beispiel)

  1. 1Ausgedachte Aufgabe: Eine Wetter-App hat drei Teile. A: die gespeicherte Temperatur. B: ein Textfeld für den Ort mit der Anzeige der Temperatur. C: ein Programmteil, der die Eingabe auswertet und die Temperatur ändert.
  2. 2Regel: Das Modell enthält Daten. Die Ansicht stellt sie dar und nimmt Eingaben des Benutzers entgegen. Die Steuerung wertet Eingaben aus und ändert Daten.
  3. 3Teil A sind Daten: Modell.
  4. 4Teil B stellt Daten dar und nimmt Eingaben des Benutzers entgegen: Ansicht.
  5. 5Teil C wertet Eingaben aus und ändert Daten im Modell: Steuerung.
  6. 6Grenze: Ein fertiges Textfeld kann als Widget Ansicht und Event-Handling vereinen. Dann ist die Zuordnung nicht ganz eindeutig.

Fehler finden

Prüfe die Aussagen zu drei Diagrammen mit Messwerten In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Die stellt die Daten des Modells dar. Der Server schickt dem Browser die fertige Seite als HTTP- zurück. MVC kann in einer Schichtenarchitektur die umsetzen.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Model-View-Controller

LeichtWelche Komponente ist von den beiden anderen unabhängig?
MittelWie läuft ein typischer Ablauf auf dem Server ab, ohne HTTP-Redirect?
SchwerEine bestehende Webanwendung bekommt eine Mobile-Variante. Was ist bei einer Drei-Schichten-Aufteilung nötig?

Weiterlesen in Informatik