UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Pattern III “Erzeugungsmuster”XP-Praktikum 2005a
Philip Ritzkopf
23. Februar 2005
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Ubersicht
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Grundidee
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Grundidee
Grundidee
Erzeugungsmuster
bilden Abstraktion des Instanziierungsprozesses
machen Systeme unabhangig davon, wie Objekte erzeugt,zusammengesetzt und dargestellt werden
kapseln welche konkreten Klassen das System verwendet
vermeiden hardcoded Instanziierungsanweisungen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Grundidee
Grundidee
Erzeugungsmuster
bilden Abstraktion des Instanziierungsprozesses
machen Systeme unabhangig davon, wie Objekte erzeugt,zusammengesetzt und dargestellt werden
kapseln welche konkreten Klassen das System verwendet
vermeiden hardcoded Instanziierungsanweisungen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Grundidee
Grundidee
Erzeugungsmuster
bilden Abstraktion des Instanziierungsprozesses
machen Systeme unabhangig davon, wie Objekte erzeugt,zusammengesetzt und dargestellt werden
kapseln welche konkreten Klassen das System verwendet
vermeiden hardcoded Instanziierungsanweisungen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Grundidee
Grundidee
Erzeugungsmuster
bilden Abstraktion des Instanziierungsprozesses
machen Systeme unabhangig davon, wie Objekte erzeugt,zusammengesetzt und dargestellt werden
kapseln welche konkreten Klassen das System verwendet
vermeiden hardcoded Instanziierungsanweisungen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zweck
Factory Method
erlaubt Erzeugung konkreter Objekte und ist dabei nur vonabstrakten Schnittstellen abhangig
lasst Unterklassen entscheiden welche konkreten Klasseninstanziiert werden sollen
verschiebt das Problem der Abhangigkeit von konkretenKlassen, d.h. jemand muss einen konkreten Creator erzeugen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zweck
Factory Method
erlaubt Erzeugung konkreter Objekte und ist dabei nur vonabstrakten Schnittstellen abhangig
lasst Unterklassen entscheiden welche konkreten Klasseninstanziiert werden sollen
verschiebt das Problem der Abhangigkeit von konkretenKlassen, d.h. jemand muss einen konkreten Creator erzeugen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zweck
Factory Method
erlaubt Erzeugung konkreter Objekte und ist dabei nur vonabstrakten Schnittstellen abhangig
lasst Unterklassen entscheiden welche konkreten Klasseninstanziiert werden sollen
verschiebt das Problem der Abhangigkeit von konkretenKlassen, d.h. jemand muss einen konkreten Creator erzeugen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Struktur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer I
Product
definiert die Schnittstelle fur die Objekte, die durch die FactoryMethod erzeugt werden
ConcreteProduct
implementiert die durch Product festgelegte Schnittstelle
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer I
Product
definiert die Schnittstelle fur die Objekte, die durch die FactoryMethod erzeugt werden
ConcreteProduct
implementiert die durch Product festgelegte Schnittstelle
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer II
Creator
deklariert die Factory Method, welche ein Objekt vom TypProduct liefertkann eine Standardimplementierung fur Factory Methodbesitzen, die ein Standard- ConcreteProduct Objekt zuruckgibtkann Factory Method aufrufen, um ein ConcreteProductObjekt zu liefern
ConcreteCreator
redefiniert die Factory Method, um ein ConcreteProductExemplar zuruck zu geben
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer II
Creator
deklariert die Factory Method, welche ein Objekt vom TypProduct liefertkann eine Standardimplementierung fur Factory Methodbesitzen, die ein Standard- ConcreteProduct Objekt zuruckgibtkann Factory Method aufrufen, um ein ConcreteProductObjekt zu liefern
ConcreteCreator
redefiniert die Factory Method, um ein ConcreteProductExemplar zuruck zu geben
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zusammenspiel
Creator verlasst sich darauf, dass die Unterklassen die FactoryMethod redefinieren, so dass eine Instanz des gewunschtenConcreteProduct geliefert wird
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Factory Method, wenn
eine Klasse die Klasse von Objekten, die sie erzeugen mussnicht vorhersehen kann
Subklassen einer Klasse die zu erzeugenden Objekte festlegensoll
Klassen Zustandigkeiten an eine von mehrerenHilfsunterklassen delegieren, aber das Wissen uber dieWeiterleitung an einem Ort lokalisiert werden soll
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Factory Method, wenn
eine Klasse die Klasse von Objekten, die sie erzeugen mussnicht vorhersehen kann
Subklassen einer Klasse die zu erzeugenden Objekte festlegensoll
Klassen Zustandigkeiten an eine von mehrerenHilfsunterklassen delegieren, aber das Wissen uber dieWeiterleitung an einem Ort lokalisiert werden soll
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Factory Method, wenn
eine Klasse die Klasse von Objekten, die sie erzeugen mussnicht vorhersehen kann
Subklassen einer Klasse die zu erzeugenden Objekte festlegensoll
Klassen Zustandigkeiten an eine von mehrerenHilfsunterklassen delegieren, aber das Wissen uber dieWeiterleitung an einem Ort lokalisiert werden soll
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zweck
Abstract Factory
stellt eine Schnittstelle zur Erzeugung von Familienverwandter Objekte zur Verfugung ohne ihre konkretenKlassen angeben zu mussen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Struktur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer I
AbstractFactory
deklariert abstrakte Schnittstelle fur Erzeugungsoperationen
ConcreteFactory
implementiert Operationen zur Erzeugung von Produkten
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer I
AbstractFactory
deklariert abstrakte Schnittstelle fur Erzeugungsoperationen
ConcreteFactory
implementiert Operationen zur Erzeugung von Produkten
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer II
AbstractProduct
deklariert Schnittstelle fur einen Produkttyp
ConcreteProduct
definiert Produkt, das von ConcreteFactory erzeugt wird undimplementiert Produktoperationen
Client
verwendet nur abstrakte Schnittstellen von AbstractFactoryund AbstractProduct
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer II
AbstractProduct
deklariert Schnittstelle fur einen Produkttyp
ConcreteProduct
definiert Produkt, das von ConcreteFactory erzeugt wird undimplementiert Produktoperationen
Client
verwendet nur abstrakte Schnittstellen von AbstractFactoryund AbstractProduct
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer II
AbstractProduct
deklariert Schnittstelle fur einen Produkttyp
ConcreteProduct
definiert Produkt, das von ConcreteFactory erzeugt wird undimplementiert Produktoperationen
Client
verwendet nur abstrakte Schnittstellen von AbstractFactoryund AbstractProduct
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zusammenspiel
Normalerweise wird zur Laufzeit nur eine Instanz einerConcreteFactory erzeugt
ConcreteFactory erzeugt Produktobjekte mit einerbestimmten Implementierung
Um unterschiedliche Produktobjekte erzeugen zu konnenmussen Klienten unterschiedliche ConcreteFactory Objekteverwenden
AbstractFactory verschiebt die Verantwortung fur dieErzeugung von Produktobjekten zur ConcreteFactory
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Abstract Factory, wenn
das System unabhangig davon sein soll wie seine Produkteerzeugt, zusammengesetzt und dargestellt werden
das System mit unterschiedlichen Produktfamilienkonfigurierbar sein soll
eine Familie verwandter Produkte dafur ausgelegt ist, dass siezusammen verwendet werden und diese Bedingung eingehaltenwerden soll
eine Klassenbibliothek erstellt werden soll, die nur ihreSchnittstellen aber nicht die Implementierung offen legt
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Abstract Factory, wenn
das System unabhangig davon sein soll wie seine Produkteerzeugt, zusammengesetzt und dargestellt werden
das System mit unterschiedlichen Produktfamilienkonfigurierbar sein soll
eine Familie verwandter Produkte dafur ausgelegt ist, dass siezusammen verwendet werden und diese Bedingung eingehaltenwerden soll
eine Klassenbibliothek erstellt werden soll, die nur ihreSchnittstellen aber nicht die Implementierung offen legt
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Abstract Factory, wenn
das System unabhangig davon sein soll wie seine Produkteerzeugt, zusammengesetzt und dargestellt werden
das System mit unterschiedlichen Produktfamilienkonfigurierbar sein soll
eine Familie verwandter Produkte dafur ausgelegt ist, dass siezusammen verwendet werden und diese Bedingung eingehaltenwerden soll
eine Klassenbibliothek erstellt werden soll, die nur ihreSchnittstellen aber nicht die Implementierung offen legt
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Abstract Factory, wenn
das System unabhangig davon sein soll wie seine Produkteerzeugt, zusammengesetzt und dargestellt werden
das System mit unterschiedlichen Produktfamilienkonfigurierbar sein soll
eine Familie verwandter Produkte dafur ausgelegt ist, dass siezusammen verwendet werden und diese Bedingung eingehaltenwerden soll
eine Klassenbibliothek erstellt werden soll, die nur ihreSchnittstellen aber nicht die Implementierung offen legt
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zweck
Prototype
spezifiziert Arten zu erzeugender Objekte durch einpototypisches Exemplar und erzeugt neue Objekte durchkopieren (klonen) dieses Prototypen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Struktur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer
Prototype
deklariert eine Schnittstelle, um sich selbst zu klonen
ConcretePrototype
implementiert eine Operation, um sich selbst zu klonen
Client
erzeugt neue Objekte, indem es den Prototyp auffordert sichzu klonen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer
Prototype
deklariert eine Schnittstelle, um sich selbst zu klonen
ConcretePrototype
implementiert eine Operation, um sich selbst zu klonen
Client
erzeugt neue Objekte, indem es den Prototyp auffordert sichzu klonen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Teilnehmer
Prototype
deklariert eine Schnittstelle, um sich selbst zu klonen
ConcretePrototype
implementiert eine Operation, um sich selbst zu klonen
Client
erzeugt neue Objekte, indem es den Prototyp auffordert sichzu klonen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Zusammenspiel
Ein Klient fordert einen Prototyp auf sich zu klonen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Prototype, wenn
Klassen der zu erzeugenden Objekte zur Laufzeit spezifiziertwerden mussen
parallele Klassenhierarchien zwischen Fabriken (Factory) undProdukten (Product) vermieden werden sollen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielAnwendbarkeit
Anwendbarkeit
Benutze Prototype, wenn
Klassen der zu erzeugenden Objekte zur Laufzeit spezifiziertwerden mussen
parallele Klassenhierarchien zwischen Fabriken (Factory) undProdukten (Product) vermieden werden sollen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
1 Erzeugungsmuster Allgemein
2 Factory Method Entwurfsmuster
3 Abstract Factory Entwurfsmuster
4 Prototype Entwurfsmuster
5 Builder Entwurfsmuster
6 Literatur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Zweck
Builder
trennt die Konstruktion eines komplexen Objekts von seinerDarstellung, so dass derselbe Konstruktionsprozessunterschiedliche Darstellungen erzeugen kann
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Struktur
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Teilnehmer I
Builder
deklariert eine abstrakte Schnittstelle zur Erzeugung von Teileneines Produktobjekts
ConcreteBuilder
konstruiert und setzt Teile des Produkts zusammen, indem esdie Builder Schnittstelle implementiertdefiniert und verwaltet die Reprasentation die es erzeugtbietet eine Schnittstelle an, um das Produkt abrufen zu konnen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Teilnehmer I
Builder
deklariert eine abstrakte Schnittstelle zur Erzeugung von Teileneines Produktobjekts
ConcreteBuilder
konstruiert und setzt Teile des Produkts zusammen, indem esdie Builder Schnittstelle implementiertdefiniert und verwaltet die Reprasentation die es erzeugtbietet eine Schnittstelle an, um das Produkt abrufen zu konnen
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Teilnehmer II
Director
benutzt Builder-Schnittstelle um ein Objekt zu konstruieren
Product
reprasentiert das zu konstruierende komplexe Objektinterne Darstellung wird durch ConcreteBuilder erzeugtumfasst Klassen, die die einzelnen Teile definieren
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Teilnehmer II
Director
benutzt Builder-Schnittstelle um ein Objekt zu konstruieren
Product
reprasentiert das zu konstruierende komplexe Objektinterne Darstellung wird durch ConcreteBuilder erzeugtumfasst Klassen, die die einzelnen Teile definieren
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Zusammenspiel
Klient instanziiert ein Director-Objekt und konfiguriert es mitdem gewunschten Builder-Objekt
Director sendet Nachrichten an den Builder immer wenn einProduktteil erzeugt werden soll
Builder bearbeitet die Anforderungen des Director und fugtdem Produkt Teile hinzu
Klient ruft das Produkt beim Builder ab
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Beispiel
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Anwendbarkeit
Benutze Builder, wenn
der Erzeugungsprozess eines komplexen Objekts unabhangigvon den einzelnen Komponenten des Objekts und davon, wiediese zusammengesetzt werden, sein soll
der Konstruktionsprozess unterschiedliche Darstellungen deszu erzeugenden Objekts ermoglichen muss
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
ZweckStrukturTeilnehmerZusammenspielBeispielAnwendbarkeit
Anwendbarkeit
Benutze Builder, wenn
der Erzeugungsprozess eines komplexen Objekts unabhangigvon den einzelnen Komponenten des Objekts und davon, wiediese zusammengesetzt werden, sein soll
der Konstruktionsprozess unterschiedliche Darstellungen deszu erzeugenden Objekts ermoglichen muss
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Literatur I
Robert C. MartinAgile Software Development - Principles, Patterns, andPracticesPrentice Hall, Pearson Education Inc.
Bruce Eckel, Chuck AllisonThinking in C++ Volume Two: Practical Programminghttp://mindview.net/Books/TICPP/ThinkingInCPP2e.html
Bruce EckelThinking in Patterns with Javahttp://mindview.net/Books/TIPatterns/
Philip Ritzkopf Pattern III “Erzeugungsmuster”
UbersichtErzeugungsmuster Allgemein
Factory Method EntwurfsmusterAbstract Factory Entwurfsmuster
Prototype EntwurfsmusterBuilder Entwurfsmuster
Literatur
Literatur II
E. Gamma, R. Helm, R. Johnson, J. VlissidesDesign Patterns - Elements of Reusable Object-OrientedSoftwareAddison Wesley
Philip Ritzkopf Pattern III “Erzeugungsmuster”