MVC-Architektur am Beispiel von OLAT
Marvin Frommhold
12. Januar 2009
Gliederung
BegriffeEntwurfsmuster
Umsetzung in OLATAufbau des Brasato-Frameworks
Quellen
Begriffe I
MVC
I bezeichnet ein Architekturmuster zurStrukturierung von Software und derEntwicklung in drei Einheiten:
I Datenmodell (Model)I Prasentation (View)I Programmsteuerung (Controller)
I Ziel: ein flexibler Programmentwurf, der u. A.eine spatere Anderung oder Erweiterungerleichtert
I Wiederverwendbarkeit der einzelnenKomponenten, leichter Austausch dieser
Begriffe I
MVC
I bezeichnet ein Architekturmuster zurStrukturierung von Software und derEntwicklung in drei Einheiten:
I Datenmodell (Model)I Prasentation (View)I Programmsteuerung (Controller)
I Ziel: ein flexibler Programmentwurf, der u. A.eine spatere Anderung oder Erweiterungerleichtert
I Wiederverwendbarkeit der einzelnenKomponenten, leichter Austausch dieser
Begriffe II
Modell:
I enthalt die Darzustellenden Daten und meistauch deren Verarbeitung (Berechnungen), dieGeschaftslogik
I Anderungen werden nach dem Entwurfsmuster
”Beobachter“ bekanntgegeben
Prasentation:
I Darstellung der jeweiligen Daten aus dem ModellI Entgegennahme von BenutzerinteraktionenI verwendet meist das Entwurfsmuster
”Kompositum“
Begriffe II
Modell:
I enthalt die Darzustellenden Daten und meistauch deren Verarbeitung (Berechnungen), dieGeschaftslogik
I Anderungen werden nach dem Entwurfsmuster
”Beobachter“ bekanntgegeben
Prasentation:
I Darstellung der jeweiligen Daten aus dem ModellI Entgegennahme von BenutzerinteraktionenI verwendet meist das Entwurfsmuster
”Kompositum“
Begriffe III
Steuerung:
I verwaltet eine oder mehrere PrasentationenI nimmt deren Benutzerinteraktionen entgegen,
wertet diese aus und reagiert entsprechendI auf Grund der Aktionen entscheidet die
Steuerung, welche Daten im Modell verandertwerden mussen
I verwendet Entwurfsmuster”Strategie“
Entwurfsmuster I
Observer: (Beobachter)
I Problem: eine/mehrere Komponenten stellenZustand eines Objekts aus dem Modell dar,diese kennen gesamte Schnittstelle diesesObjekts; andererseits soll das Objekt von denKomponenten unabhangig bleiben, also derenSchnittstellen nicht kennen
I Losung: das beobachtete Objekt stelltMechanismus bereit, uber den Beobachter sichan-/abmelden konnen und diese vom Objektuber Anderungen informiert werden; das Objektmuss somit nur eine einheitliche Schnittstelleseiner Beobachter kennen
Entwurfsmuster I
Observer: (Beobachter)
I Problem: eine/mehrere Komponenten stellenZustand eines Objekts aus dem Modell dar,diese kennen gesamte Schnittstelle diesesObjekts; andererseits soll das Objekt von denKomponenten unabhangig bleiben, also derenSchnittstellen nicht kennen
I Losung: das beobachtete Objekt stelltMechanismus bereit, uber den Beobachter sichan-/abmelden konnen und diese vom Objektuber Anderungen informiert werden; das Objektmuss somit nur eine einheitliche Schnittstelleseiner Beobachter kennen
Entwurfsmuster II
Abbildung: http://de.wikipedia.org/w/index.php?title=Datei:Beobachter-pattern.png&filetimestamp=20080305110419
Entwurfsmuster III
Kompositum: I Grundidee: Reprasentation von primitivenObjekten sowie deren Behalter in einerabstrakten Klasse; somit konnen einzelneObjekte, als auch ihre Kompositionen einheitlichbetrachtet werden
I Verwendung: Implementierung vonTeil-Ganzes-Hierarchien; Verbergen derUnterschiede zwischen einzelnen undzusammengesetzten Objekten
Entwurfsmuster III
Kompositum: I Grundidee: Reprasentation von primitivenObjekten sowie deren Behalter in einerabstrakten Klasse; somit konnen einzelneObjekte, als auch ihre Kompositionen einheitlichbetrachtet werden
I Verwendung: Implementierung vonTeil-Ganzes-Hierarchien; Verbergen derUnterschiede zwischen einzelnen undzusammengesetzten Objekten
Entwurfsmuster IV
Abbildung: http://de.wikipedia.org/w/index.php?title=Datei:Kompositum Klassen.png&filetimestamp=20060407095951
Entwurfsmuster V
Strategie:
I Umsetzung meist durch eine Klasse, die einebestimmte Schnittstelle implementiert
I Anwendung:
I viele verwandte Objekte unterscheiden sich nurim Verhalten
I unterschiedliche (austauschbare) Varianteneines Algorithmus werden benotigt
Entwurfsmuster V
Strategie:
I Umsetzung meist durch eine Klasse, die einebestimmte Schnittstelle implementiert
I Anwendung:
I viele verwandte Objekte unterscheiden sich nurim Verhalten
I unterschiedliche (austauschbare) Varianteneines Algorithmus werden benotigt
Entwurfsmuster VI
Abbildung: http://de.wikipedia.org/w/index.php?title=Datei:Strategie.png&filetimestamp=20050307081336
Umsetzung in OLAT
OLAT:
I Online Learning And TrainingI web-basiertes Learning Management System
(LMS)I basiert auf Java, Open SourceI Entwicklung an der Universitat Zurich
I aus dieser Entwicklung heraus entstand dasBrasato-Framework
Aufbau des Brasato-Frameworks I
I im Brasato-Framework sind die beiden Schichten”Model“ und
”View“ sehr eng miteinander verbunden
I werden in einer Klasse zusammengefugt, aber durchverschiedene darunterliegende Klassen und Dateienreprasentiert, dadurch wird wieder eine Trennung der beidenSchichten ermoglicht
Modell/View
I org.olat.core.gui.components.ComponentI Vereint die Entwurfsmuster
”Observer“ und
”Kompositum“
I Schnittstelle zum Anmelden von Uberwachern(Controller)
I Schnittstelle zum Benachrichtigen derUberwacher
Aufbau des Brasato-Frameworks I
I im Brasato-Framework sind die beiden Schichten”Model“ und
”View“ sehr eng miteinander verbunden
I werden in einer Klasse zusammengefugt, aber durchverschiedene darunterliegende Klassen und Dateienreprasentiert, dadurch wird wieder eine Trennung der beidenSchichten ermoglicht
Modell/View
I org.olat.core.gui.components.ComponentI Vereint die Entwurfsmuster
”Observer“ und
”Kompositum“
I Schnittstelle zum Anmelden von Uberwachern(Controller)
I Schnittstelle zum Benachrichtigen derUberwacher
Aufbau des Brasato-Frameworks II
I abstrakte Basisklasse aller zu prasentierenden Objekte(Kompositum)
I die Darstellung der Objekte geschieht durchorg.olat.core.gui.components.ComponentRenderer
Aufbau des Brasato-Frameworks II
I abstrakte Basisklasse aller zu prasentierenden Objekte(Kompositum)
I die Darstellung der Objekte geschieht durchorg.olat.core.gui.components.ComponentRenderer
Aufbau des Brasato-Frameworks III
Contoller:
I org.olat.core.gui.control.ControllerI verwendet das Entwurfsmuster
”Strategie“
I einheitliche Schnittstelle, welche Informationuber das uberwachte Objekt und die zugehorigeAktion erhalt
Aufbau des Brasato-Frameworks III
Contoller:
I org.olat.core.gui.control.ControllerI verwendet das Entwurfsmuster
”Strategie“
I einheitliche Schnittstelle, welche Informationuber das uberwachte Objekt und die zugehorigeAktion erhalt
Quellen
I Wikipedia, Die freie Enzyklopadie: Model View Controller,Wikimedia Foundation Inc.
Vielen Dank fur Eure Aufmerksamkeit!