Java Reference
In-Depth Information
Die Beziehung zwischen Abstraktion und Implementierung wird
Brücke
genannt, weil sie eine Brücke zwischen Abstraktion und
Implementierung bildet, wobei beide sich in einer eigenen Spezia-
lisierungshierarchie entwickeln können.
Die Brücke verbindet beide Seiten, d. h. beide Klassenhierarchien, miteinander. Die
Methoden einer Abstraktion werden unter Verwendung der Methoden des Interface
IImplementierer
(siehe Bild 4-4) realisiert. Das Brücke-Muster legt nicht fest, wie
die Implementierungsobjekte erzeugt werden. Beispielsweise kann eine abstrakte Fa-
brik (siehe Kapitel 4.19) eingesetzt werden, um zueinander passende Implemen-
tierungs- und Abstraktionsobjekte zu erzeugen.
Über die Brücke - also über die Aggregation - kann eine Abs-
traktion mit ganz verschiedenen Implementierungen arbeiten. Die
Abstraktion kann ebenfalls weiterentwickelt werden.
Der konkrete Implementierer in Bild 4-4 erbt nicht von der Abstraktion, da dies eine
starke Kopplung bedeuten würde. Für den Client muss ein Objekt der Klasse
Ab-
straktion
sichtbar sein. Auch eine möglicherweise weiterentwickelte Abstraktions-
klasse (
SpezAbstraktion
) muss für einen Client sichtbar sein, wenn er diese direkt
aufrufen will.
Das Interface
IImplementierer
und die konkreten Implementierer sollten für den
Client nicht zu erreichen sein. Ansonsten bestünde die Gefahr, dass sie direkt vom
Client angesprochen werden könnten. Eine solche direkte Verwendung würde alle
Vorteile der Trennung wieder zunichtemachen.
4.4.3.2 Teilnehmer
Client
Ein
Client ruft die Klasse
Abstraktion
bzw. die Klasse
SpezAbstraktion
auf.
Abstraktion
Die Klasse
Abstraktion
definiert die Schnittstelle, über die ein Client auf die Funk-
tionalität der Klasse
Abstraktion
zugreifen kann. Zusätzlich enthält die Klasse
Ab-
straktion
eine Referenz auf das von ihr selbst vorgegebene Interface
IImple-
mentierer
.
SpezAbstraktion
Diese Klasse leitet von der Klasse
Abstraktion
ab und kann deren Schnittstelle er-
weitern. Auch ein Objekt der Klasse
SpezAbstraktion
kann von einem Client aufge-
rufen werden. Tritt ein Objekt der Klasse
SpezAbstraktion
bei einem Client aber
nach dem liskovschen Substitutionsprinzip an die Stelle eines Objekts der Klasse
Abstraktion
, so kann der Client nur die Methoden der Klasse
Abstraktion
benut-
zen.
Search WWH ::
Custom Search