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