Java Reference
In-Depth Information
Das Fabrikmethode-Muster soll es erlauben, dass die Erzeu-
gung einer konkreten Instanz in der Methode einer Unterklasse
gekapselt wird.
4.18.3
Lösung
Das Muster Fabrikmethode basiert auf einem abstrakten Grundgerüst, das von kon-
kreten Klassen überschrieben wird und genutzt werden kann. Das Muster Fabrikme-
thode verwendet in der höheren, abstrakten Ebene eine Klasse Erzeuger und eine
Klasse Produkt . Die Klasse Erzeuger enthält zur Erzeugung von Produkten eine
Fabrikmethode, die abstrakt bleiben muss, da der konkrete Produkttyp noch nicht be-
kannt ist.
Auf der tieferen, konkreten Ebene gibt es konkrete Produkte und konkrete Erzeu-
ger . Eine Unterklasse KonkreterErzeugerX der Klasse Erzeuger überschreibt die
abstrakte Fabrikmethode so, dass in der überschreibenden Fabrikmethode ein Objekt
der Klasse KonkretesProduktX , das von der abstrakten Klasse Produkt abgeleitet
ist, erzeugt wird. Die Erzeugung eines konkreten Produkts wird also auf eine konkrete
Unterklasse der Klasse Erzeuger und deren konkrete Fabrikmethode, die das ge-
wünschte Produkt erzeugt, verlagert.
Die Erzeugung von Objekten wird an die entsprechende Unter-
klasse delegiert, die das Wissen über die jeweilige Klasse der zu
erzeugenden Objekte besitzt. Eine Klasse einer höheren Ebene
ist damit nicht mehr abhängig von der Ausprägung einer Klasse
einer tieferen Ebene ( Dependency Inversion ). Die konkreten
Klassen können damit zu einem späteren Zeitpunkt geschrieben
werden.
Diese Vorgehensweise erlaubt es, eine wiederverwendbare Anwendung in Form einer
abstrakten Basisklasse oder Schnittstelle sowohl für das Produkt als auch für die
Erzeuger-Klasse zu schreiben und mit davon abgeleiteten Klassen auszuführen. Erst
zur Laufzeit des Programms, das die wiederverwendbare Anwendung nutzt, wird ent-
schieden, welche Unterklasse der Klasse Erzeuger instanziiert werden soll, damit
diese nach dem liskovschen Substitutionsprinzip an die Stelle eines Objekts der Klas-
se Erzeuger tritt, um ein konkretes Produkt zu erzeugen. Beim Erzeugungsmuster
Fabrikmethode legen Unterklassen die zu erzeugenden Objekte statisch fest. Dieses
Muster zählt somit zu den klassenbasierten Mustern.
4.18.3.1 Klassendiagramm
Das Fabrikmethode-Muster setzt voraus, dass die zu erzeugenden Produkte eine ein-
heitliche Schnittstelle haben. Im Folgenden wird dazu eine abstrakte Klasse namens
Produkt eingeführt. Sie muss nicht unbedingt abstrakt sein, sie muss nur die Basis-
Search WWH ::




Custom Search