Abstrakte Fabrik [ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]


Übersicht

[klick] zum vergrössern
 Abb. 1: Das AbstractFactory Design Pattern

Eine «AbstractFactory» hat die Aufgabe, Instanzen anderer Klassen zu erzeugen. Im Pattern werden diese Klassen unter der abstrakten Superklasse «AbstractProduct» zusammengefasst.

In der Klassenhierarchie existiert demnach eine abstrakte Superklasse für die Factory, die die Methoden zur Objekterzeugung definiert. Je nach Art der zu erzeugenden Objekte werden die Produkte ebenfalls mittels abstrakter Superklassen definiert. Diese Klassen sind dann die Rückgabetypen der Methoden der abstrakten Fabrik, eine abstrakte Fabrik bietet also Methoden zur Erzeugung von 1..n abstrakten Produkten an.
Auf diesen abstrakten Klassendefinitionen lassen sich nun spezielle Ausprägungen der abstrakten Produkte klassifizieren, implementieren und durch zugehörige Fabrikimplementationen dem «Client» nutzbar machen.

Der «Client» kümmert sich entsprechend nicht um die Erzeugung der speziellen Objekte, er wählt lediglich eine spezielle Fabrik aus. Diese Fabrik übernimmt dann die Funktionalität der Instanziierung, der «Client» operiert nur auf den im abstrakten Produkt definierten Methoden.

Der Vorteil des «AbstractFactory» Patterns ist also die Nutzung der Abstraktion auf der Ebene der Objektinstanziierung. Der «Client» nutzt zur Laufzeit nur die Methoden des «AbstractProduct», die speziellen Ausprägungen bleiben ihm verborgen und müssen ihn auch nicht interessieren.


[ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]
Stand: 15.08.2004, Autor: Jens Günther