Java Reference
In-Depth Information
Beim Verhaltensmuster Vermittler kommunizieren Objekte nicht
mehr direkt miteinander, sondern indirekt über einen Vermittler.
Dieser informiert die von einer eingetroffenen Nachricht betroffe-
nen Kollegen. Die wechselseitige Abhängigkeit der Objekte unter-
einander wird reduziert, die Objekte sind dafür vom Vermittler ab-
hängig.
4.13.3.1 Klassendiagramm
Die miteinander kommunizierenden Objekte werden als Kollegen bezeichnet. Das fol-
gende Klassendiagramm des Vermittler-Musters verwendet für die Abstraktion eines
Kollegen eine abstrakte Klasse. Diese abstrakte Klasse kann den Code, der zwischen
den konkreten Kollegen geteilt wird und der beispielhaft im folgenden Bild durch die
Methode aenderung() angedeutet ist, enthalten. Aber prinzipiell kann für die Ab-
straktion eines Kollegen sowohl eine abstrakte Klasse als auch ein Interface verwen-
det werden. Das Gleiche gilt auch auf der Vermittlerseite: Auch die Schnittstelle eines
Vermittlers kann ebenso in einem Interface definiert werden anstatt in einer abstrakten
Klasse.
Wie in Bild 4-40 zu sehen ist, hat die abstrakte Klasse Kollege eine Assoziation zu
einem abstrakten Vermittler. Diese Assoziation erben alle konkreten Kollegen. Jeder
Kollege soll also den Vermittler kennen.
Im Fall der Veränderung eines konkreten Kollegen-Objektes wird der assoziierte kon-
krete Vermittler benachrichtigt. Dieser informiert dann alle betroffenen weiteren kon-
kreten Kollegen. Ein konkreter Vermittler muss also wissen, welche konkreten Kolle-
gen er benachrichtigen soll. Das Klassendiagramm in Bild 4-40 zeigt daher eine ge-
richtete Assoziation zwischen der Klasse KonkreterVermittler und den Klassen
KonkreterKollegeX (X = A..Z) .
Damit die Kommunikation zwischen Vermittler und Kollegen reibungslos funktioniert,
muss in beiden Klassenhierarchien das liskovsche Substitutionsprinzip eingehalten
werden. Hier das Klassendiagramm:
Vermittler
{abstract}
aenderungAufgetreten (Kollege k)
Kollege
{abstract}
aenderung()
ruft auf:
vermittler.aenderung-
Aufgetreten (this)
KonkreterVermittler
aenderungAufgetreten (Kollege k)
KonkreterKollegeA
methodeA()
KonkreterKollegeB
methodeB()
Bild 4-40 Klassendiagramm des Vermittler-Musters
Search WWH ::




Custom Search