Java Reference
In-Depth Information
Die Zugriffe auf die Fassade werden von der Fassade an die
Klassen des Subsystems weitergeleitet (delegiert).
Dabei kann eine Methode einer Fassadenklasse auf mehrere Klassen eines Subsys-
tems zugreifen, wobei diese Klassen jeweils einen Teil der entsprechenden Aufgabe
ausführen.
Das Fassade-Muster lässt offen, ob Direktzugriffe auf Subsystemklassen - also Zu-
griffe, die nicht über die Fassade gehen - möglich sind. Da es sich bei einer Fassade
meist um eine Vereinfachung der von den Klassen angebotenen Schnittstellen han-
delt, sollte man aber davon ausgehen, dass es Klienten gibt, denen eine vereinfachte
Schnittstelle nicht genügt. Diese Klienten müssen dann an der Fassade vorbeigehen
und einen Direktaufruf bei den Subsystemklassen machen. Die sich daraus ergeben-
den Nachteile werden in Kapitel 4.6.4 ausführlich diskutiert.
Die Beschreibung des Musters benutzt den Begriff Subsystem, ohne ihn präziser zu
definieren. Ein Subsystem kann auch ein System sein. Man spricht allgemein von Sys-
temen n-ter Stufe. In Java kann man beispielsweise ein Paket ( package ) als Subsys-
tem bezeichnen und auf dieser Ebene das Muster anwenden. Java erlaubt es, bei
einem Paket über die Paketsichtbarkeit Direktzugriffe auf die Klassen eines Pakets zu
unterbinden.
4.6.3.1 Klassendiagramm
Die einheitliche und in der Regel vereinfachte Schnittstelle zwischen den Clients und
den Klassen eines Subsystems wird durch eine eigene Klasse zur Verfügung gestellt,
die sogenannte Fassadenklasse. Diese ist im folgenden Bild dargestellt:
Client1
Client2
Client3
Fassade
Subsystem
Subsystem-
klasse 1
Subsystem-
klasse 3
Subsystem-
klasse 2
Subsystem-
klasse 4
Bild 4-17 Beispiel für ein Klassendiagramm des Fassade-Musters
Dabei ist die Hüllkurve um das Subsystem frei und nicht UML-konform gezeichnet.
Search WWH ::




Custom Search