Java Reference
In-Depth Information
Um einen Aufruf einer gemeinsamen Methode (z. B. operation() ) in allen Baumele-
menten zu veranlassen, wird diese Methode im Wurzelelement des Baumes aufgeru-
fen. Von hier aus wird der Aufruf an die inneren Elemente delegiert ( Delegationsprin-
zip ).
Anstelle der Methode operation() kann man sich beispielsweise eine resize() -
Methode vorstellen, mit deren Hilfe man eine Größenänderung eines Fensters an alle
enthaltenen Elemente weiterleitet.
Das Strategie-Muster im MVC
Durch das MVC-Muster ist es möglich, die Reaktion einer View auf Benutzereingaben
zu ändern, indem einer View von außen ein neuer Controller zugeordnet wird. Dabei
ist jeder View-Komponente zu jedem Zeitpunkt ein entsprechender Controller zugeord-
net, so dass jede GUI-Komponente stets ein Paar aus Controller und View aufweist.
Die Beziehung zwischen View und Controller kann mit dem klassischen Strategie-
Muster 116 realisiert werden. Der Controller stellt dabei die Strategie der View dar, also
das Verhalten, das die Eingaben des Benutzers interpretiert. Die View delegiert die In-
formationen über erfolgte Eingaben an den Controller weiter. Die View kann aber auch
Schnittstellenfunktionen bereitstellen, über die der Controller, wenn er von der View
über eine Eingabe des Benutzers informiert wurde, die vom Benutzer veränderten
Werte oder Parameter aus den View-Elementen auslesen kann (z. B. den Wert eines
Textfeldes). Eine View ist dabei stets nur für den Empfang der Eingaben verantwort-
lich. Wie die Benutzereingaben interpretiert werden, obliegt allein dem Controller.
Bild 5-43 zeigt das Strategie-Muster im MVC-Kontext:
«interface»
IController
View
+ interpretiere(geaenderteDaten
undEreignisse)
Controller1
+ interpretiere(geaenderteDaten
undEreignisse)
Controller2
+ interpretiere(geaenderteDaten
Controller3
+ interpretiere(geaenderteDaten
undEreignisse)
undEreignisse)
Bild 5-43 Klassendiagramm Strategie-Muster im MVC
Dabei ist interpretiere() eine Methode, an welche die View neu in der View ein-
gegebene Daten und Ereignisse übergibt. Je nachdem, welcher konkrete Controller
eingesetzt wird, kann die Methode interpretiere() eine andere Funktionalität auf-
weisen.
116 Das Strategie-Muster ohne Bezug zur MVC-Architektur ist in Kapitel 4.12 dargestellt.
Search WWH ::




Custom Search