Kontext/Beschreibung: Interaktive Anwendungen mit einer flexiblen Mensch-Computer-Schnittstelle
Problem: Wechselnde Benutzungsschnittstellen, Funktionserweiterungen, Änderungen "look and feel"
Kräfte/Forces: Verschiedene Anzeigeformen für die selben Daten, Direkte Verarbeitung von Eingaben, Schnelles Ändern der Benutzerschnittstelle zur Laufzeit
Lösung: Aufteilung in MVC, Model kapselt die Kerndaten und -funktionalität, ist unabhängig vom Output, dem Input und der Repräsentation, View stellt dem Nutzer die Informationen zur Verfügung; holt sich die Daten vom Model, ein Model kann mehrere Views haben, Controller empfängt Input, i.d.R. eventgetrieben, Verändert der Benutzer das Model über einen Controller, zeigen alle Views die Änderungen unmittelbar an
Konsequenzen: Vorteile: Verschiedene Views/Selbes Modell, Synchronisierte Views, Neue Views hinzufügen ist einfach; Nachteile: Komplexität, Updateneigung, Abhängigkeit zwischen Controller und View