MVC-Architektur am Beispiel von...

Post on 27-Aug-2019

215 views 0 download

Transcript of MVC-Architektur am Beispiel von...

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!