Java Reference
In-Depth Information
rieren, in ein Objekt zu kapseln. Beim Besucher-Muster dagegen verarbeiten und be-
schaffen Operationen, die jeweils in einer separaten Klasse gekapselt werden, die Da-
ten von Objekten verschiedener Klassen mit unterschiedlichen Schnittstellen einer Ob-
jektstruktur. Diese werden dann zentral im Besucher-Objekt ausgewertet. Diese Vor-
gehensweise hat den Vorteil, dass die Klassen der Daten tragenden Objekte der Ob-
jektstruktur nicht für neu hinzukommende Operationen verändert werden müssen 62 .
4.16.3.1 Klassendiagramm
Das folgende Klassendiagramm beschreibt die statische Struktur der Teilnehmer zuei-
nander:
kennt
ObjektStruktur
Client
«use»
1..n
Besucher
{abstract}
besuchen (KonkretesElementA)
besuchen (KonkretesElementB)
Element
{abstract}
akzeptieren (b: Besucher)
*
1
besucht
KonkretesElementA
getDatenA()
akzeptieren
(b: Besucher)
KonkretesElementB
getDatenB()
akzeptieren
(b: Besucher)
KonkreterBesucher1
KonkreterBesucher2
besuchen
(KonkretesElementA)
besuchen
(KonkretesElementB)
besuchen
(KonkretesElementA)
besuchen
(KonkretesElementB)
ruft auf:
b.besuchen (this )
ruft auf:
b.besuchen (this )
Bild 4-53 Klassendiagramm des Besucher-Musters unter Verwendung einer Objektstruktur
In der linken Hälfte von Bild 4-53 ist die Objektstruktur dargestellt. Die Klasse Ob-
jektstruktur ist hier nur stellvertretend zu sehen. Die Objektstruktur kann im ein-
fachsten Fall aus einem Array von Elementen bestehen. Der Aufbau der Objektstruktur
und die Art und Weise, wie auf deren Elemente zugegriffen werden kann, hat einen er-
heblichen Einfluss auf das dynamische Verhalten. Darauf wird in Kapitel 4.16.3.3 im
Detail eingegangen.
Die Elemente der Objektstruktur sind Instanzen der Klassen KonkretesElementY (Y
= A..Z) . Diese Klassen sind von der abstrakten Klasse Element abgeleitet, welche
die Deklaration einer akzeptieren() -Methode mit einem Parameter vom Typ der
abstrakten Basisklasse Besucher enthält. Die Methode akzeptieren() muss von
allen Daten tragenden Klassen, deren Objekte besuchbar sein sollen, implementiert
werden. Dadurch, dass als Typ des Parameters der akzeptieren() -Methode die
62 Dies gilt natürlich nur, solange die neue Operation nur solche Daten benötigt, die bereits über die
öffentliche Schnittstelle eines Objektes zur Verfügung stehen.
Search WWH ::




Custom Search