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