55
¨ Ubersicht Erzeugungsmuster Allgemein Factory Method Entwurfsmuster Abstract Factory Entwurfsmuster Prototype Entwurfsmuster Builder Entwurfsmuster Literatur Pattern III “Erzeugungsmuster” XP-Praktikum 2005a Philip Ritzkopf 23. Februar 2005 Philip Ritzkopf Pattern III “Erzeugungsmuster”

Pattern III “Erzeugungsmuster” - Software engineering · 2018-02-08 · Ubersicht¨ Erzeugungsmuster Allgemein Factory Method Entwurfsmuster Abstract Factory Entwurfsmuster Prototype

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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”