Java Reference
In-Depth Information
kreten Produkte, die bei Einhaltung der Verträge in der Anwendung nach dem liskov-
schen Substitutionsprinzip an die Stelle eines abstrakten Produkts treten.
4.18.3.2 Teilnehmer
Folgende Klassen sind an dem Entwurfsmuster Fabrikmethode beteiligt:
Produkt
Die abstrakte Klasse Produkt definiert die Schnittstelle der Objekte, die durch die
Fabrikmethode erzeugt werden. Alle konkreten Produkte müssen von der Klasse Pro-
dukt abgeleitet sein und müssen damit diese Schnittstelle implementieren.
KonkretesProduktX
Die Klasse KonkretesProduktX ist von der abstrakten Klasse Produkt abgelei-
tet und stellt ein zu erzeugendes konkretes Produkt dar. Typischerweise gibt es meh-
rere Klassen von konkreten Produkten.
Erzeuger
Die Klasse Erzeuger definiert eine abstrakte Fabrikmethode fabrikmethode() , die
eine Referenz auf ein Objekt vom Typ Produkt zurückgibt. Diese Methode kann auch
von einem Objekt der Klasse Erzeuger selbst aufgerufen werden (beispielsweise in
der Methode operation() ).
KonkreterErzeugerX
Die Klasse KonkreterErzeugerX überschreibt die Methode fabrikmethode()
der Klasse Erzeuger , um ein neues Objekt vom Typ KonkretesProduktX zu er-
zeugen und eine Referenz darauf zurückzugeben. Die zurückgegebene Referenz ist
zwar vom Typ Produkt , kann aber auf ein Objekt vom Typ KonkretesProduktX
verweisen (liskovsches Substitutionprinzip).
4.18.3.3 Dynamisches Verhalten
Das folgende Bild gibt ein Beispiel für die Erzeugung konkreter Produkte:
c : Client
e1 : Konkreter-
ErzeugerA
e2 : Konkreter-
ErzeugerB
fabrikmethode()
« Create »
p1 : Konkretes-
ProduktA
fabrikmethode() : p1
fabrikmethode()
« Create »
p2 : Konkretes-
ProduktB
fabrikmethode() : p2
Bild 4-59 Sequenzdiagramm Fabrikmethode
Search WWH ::




Custom Search