Java Reference
In-Depth Information
Anwendungsbeispiel: Grafische Oberflächen
Das Vermittler-Muster wird häufig bei grafischen Oberflächen eingesetzt, bei denen
mehrere Elemente wie Eingabefelder, Drop-Down-Menüs und Buttons beispielsweise
in einer Dialogbox zusammenspielen. Nach der Eingabe von Zeichen in einem Einga-
befeld müssen etwa in einer Dialogbox Buttons aktiviert oder deaktiviert werden, in ei-
ner anderen Dialogbox dagegen kann es nötig sein, dass der eingegebene Text dahin-
gehend geprüft werden muss, ob es sich bei der Eingabe um einen gültigen Datensatz
handelt. Löst man das Problem dadurch, dass man das spezifische Verhalten eines
Eingabefeldes in einer Unterklasse realisiert, entsteht eine ganze Reihe von Unter-
klassen, die nur noch selten wiederverwendbar sind.
Durch die Einschaltung eines Vermittlers wird die Lösung einfacher und die Klassen
bleiben wiederverwendbar: Jede Dialogbox bekommt einen eigenen Vermittler, der -
um im Beispiel zu bleiben - von einem Eingabefeld benachrichtigt wird, dass eine
Texteingabe vorliegt. Nun entscheidet der Vermittler einer Dialogbox, welche anderen
grafischen Elemente darüber informiert werden müssen.
Die grafischen Elemente aus diesem Beispiel entsprechen den Kollegen im Sinne des
Vermittler-Musters. Sie brauchen nicht über Unterklassen an ein spezifisches Verhal-
ten angepasst werden, sondern nur der Vermittler einer Dialogbox muss das jeweilige
Verhalten realisieren. Das Beispiel stammt aus [Gam95] und wird dort ausführlich be-
schrieben.
4.13.6
Ähnliche Entwurfsmuster
Ein Broker ist umgangssprachlich auch ein Vermittler. Das Broker-Muster hat auch
eine gewisse Ähnlichkeit mit dem Vermittler-Muster, dadurch, dass die Kommunikation
zwischen Komponenten (Kollegen) über einen Broker bzw Vermittler abläuft. Bei ge-
nauerer Betrachtung ergeben sich aber wesentliche Unterschiede:
x Beim Vermittler-Muster kommunizieren die Kollegen über den Vermittler, wobei der
Vermittler auf Grund von bei ihm eingehenden Nachrichten betroffene Kollegen in-
formiert. Alle Beteiligten befinden sich im selben System. Beim Broker-Muster spielt
der Broker eine ähnliche Rolle wie ein Vermittler, der Broker leitet eine Nachricht
nur an den einen gewünschten Empfänger weiter, jedoch können Clients, Server
und Broker verteilt auf verschiedenen Rechnern ablaufen.
x Beim Architekturmuster Broker teilt eine Komponente dem Broker den Empfänger
der Nachricht mit, der Broker ist für die Lokalisierung der Empfänger-Komponente
im verteilten System, den Transport der Nachricht zum Empfänger und ggf. auch für
den Rücktransport einer Antwort zuständig. Dieser letzte Aspekt fehlt beim
Vermittler-Muster vollständig. Dies liegt auch daran, dass es beim Vermittler-Muster
keine 1-zu-1-Zuordnung zwischen Sender und Empfänger wie bei der Anfrage eines
Clients an einen Server beim Broker-Muster gibt, sondern eine 1-zu-n-Zuordnung.
Außerdem erwartet ein Client in der Regel vom Server eine Antwort. Im Vermittler
hingegen wird abgelegt, welche anderen Kollegen über eine Nachricht informiert
werden sollen. Eine Antwort wird dabei von den benachrichtigten Kollegen nicht er-
wartet.
Search WWH ::




Custom Search