Inhalt: Einleitung Struktur Ziele Model, View, Controller Vor

Transcrição

Inhalt: Einleitung Struktur Ziele Model, View, Controller Vor
MVC
 Inhalt:

Einleitung
Struktur
Ziele
Model, View, Controller
Vor- und Nachteile
Beispiel
Einleitung
 MVC = Model-View-Controller
 Entwickelt von Trygve Reenskaug (Universität Oslo) 1978
 MVC ist ein Architekturmuster für interaktive Systeme (allg. als
Entwurfsmuster bekannt).
 Es handelt sich dabei um ein Anwendungsframework, der graphische
Oberflächen modelliert.

Framework = Sammlung von kooperierenden Klassen, welche ein
wiederverwendbares Design ermöglichen (vollständiger Entwurf und teilweise
Implementierung)
 Der Ablauf im MVC ist ereignis-basiert

d.h. es gibt Callback-Funktionen (Methoden die automatisch aufgerufen werden,
sobald ein bestimmtes Ereignis eintritt)
Struktur
 Das Modell besteht im wesentlichen aus 3 Schichten (Client-Server-Modell)

dabei gibt es die web-basierte Realisierung (thin client) oder eine zu installierende
Oberfläche (fat client).
Ziele





Trennung von Verarbeitung und Präsentation
Steuerung der Interaktion mit dem Benutzer
Flexibilität gegen Änderungen
Wiederverwendbarkeit
Klare Arbeitsteilung (d.h. Web-Designer, Programmierer
und Datenbankexperten)
Model
 Schicht: Anwendungsdaten
 Verantwortlich:



für die Anwendung spezifischer Verarbeitung
für den Zugriff auf seine Daten
für die Kommunikation mit dem Observer
 Eigenschaften:




enthält die dauerhaften Daten der Anwendung,
weiß nichts über evtl. Views und Controller
hat View als abhängiges Objekt (Event)
kann mehrere Views haben
View
 Schicht: Darstellungsschicht (Ein- und Ausgabesichten)
 Verantwortlich:


für die Präsentation von Informationen eines Models (verschiedene
Varianten von Views möglich z.B. Liste,Balken- und Kuchendiagramm)
für die Aktualisierung der Daten, die durch den Benutzer geändert wurden
 Eigenschaften:


kann sich selbst aktualisieren
kennt das Model und ist dort registriert
Controller
 Schicht: Steuerungsschicht
 Verantwortlich:


für die Interaktion des Benutzers mit der Anwendung
für die Steuerung der Verarbeitung zwischen Model und View
(Ablauf, Datenverarbeitung, entscheidet welche Views aufgerufen
werden)
 Eigenschaften:


kann den Kontext für verschiedene Models und Views darstellen
Bestimmt die Möglichkeiten, mit denen die Benutzungsschnitstelle
auf Benutzereingaben reagieren kann.
Vorteile




mehrere Ansichten (Views) desselben Models
Synchronisierte Ansichten
Austauschbarkeit von Erscheinungsbild und
Bedienmerkmale
Vorläufige Änderungen nur in den Views und
nicht im Model
Nachteile


größere Komplexität
Ineffizienter Datenzugriff innerhalb von
Ansichten
Schichtenmodell
Klassenmodell
Beispiel
Quellen:
http://www.informatik.fh-muenchen.de/~schieder/seminar-oo
modellieren-ws97-98/f7alpha1.informatik.fhmuenchen.de/~ifw94032/mvc.html
http://ivs.cs.unimagdeburg.de/~heisel/patbas/vortrag_kwolf.pdf
http://www.fh-karlsruhe.de/servlet/PB/show/1003507/fbiPatterns3i.pdf
http://de.wikipedia.org/wiki/Model_View_Controller