Java Reference
In-Depth Information
4.4 Das Strukturmuster Brücke
4.4.1 Name/Alternative Namen
Brücke (engl. bridge), teilweise auch Verwendung des Namens Handle/Body.
4.4.2 Problem
Üblicherweise ist eine Abstraktion mit ihrer Implementierung statisch über eine Verer-
bung verknüpft: Man definiert in einer abstrakten Basisklasse die Schnittstelle von Me-
thoden mittels Methodenköpfen und implementiert die Methoden in Subklassen, die
von der abstrakten Basisklasse abgeleitet werden. Die Implementierung der abgeleite-
ten Klassen ist damit auf die Realisierung der Schnittstelle der abstrakten Basisklasse
ausgerichtet. Dies gilt auch, wenn als Abstraktion ein Interface verwendet wird und die
Implementierung über eine Realisierungsbeziehung erfolgt.
Eine solche statische Verknüpfung über eine Vererbungs- oder Realisierungsbezie-
hung ist aber oft nicht flexibel genug. Eine unabhängige Weiterentwicklung von Ab-
straktion und Implementierung ist dabei gar nicht möglich. Abstraktion und Implemen-
tierung sollen deshalb weitestgehend voneinander getrennt werden, damit sich beide
Seiten unabhängig voneinander entwickeln können, ohne jeweils die andere Seite zu
beeinflussen. Eine spezielle Abstraktion soll also nicht von der konkreten Implementie-
rung abhängen.
Das Brücke-Muster hat zum Ziel, dass sich eine Abstraktion und
ihre Implementierung unabhängig voneinander entwickeln kön-
nen.
4.4.3 Lösung
Abstraktion und Implementierung werden weitestgehend voneinander getrennt und be-
finden sich jeweils in einer eigenen Klassenhierarchie.
Alle Operationen einer Abstraktionsklasse werden auf der Basis der abstrakten Opera-
tionen des Interface IImplementierer realisiert [Gam95]. Dieses Interface wird von
der Abstraktion vorgegeben. Damit sind die Abstraktionen nicht von der konkreten Im-
plementierung abhängig ( Dependency Inversion ).
Würde eine Abstraktion die Implementierung direkt ohne Vorgabe eines Interface auf-
rufen, würden Änderungen der Implementierung voll auf die Abstraktion durchschla-
gen. Die Abstraktion wäre von der Implementierung abhängig. Durch die Einführung
eines Interface, welches die Abstraktion vorgibt, ist eine Abstraktion von ihrer kon-
kreten Implementierung unabhängig ( Dependency Inversion ).
Search WWH ::




Custom Search