14
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen SoSe 2011 Dennis Kiewning Design Patterns Creational Patterns

Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Embed Size (px)

Citation preview

Page 1: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Universität zu KölnInstitut für Historisch-Kulturwissenschaftliche InformationsverarbeitungProf. Dr. M. ThallerAM1: Re-usable Content in 3D und SimulationssystemenSoSe 2011Dennis Kiewning

Design Patterns

Creational Patterns

Page 2: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns

1.Was sind Creational Patterns?

- Entwürfe, die Objekterzeugungsprozesse abstrahieren

1) Abstract Factory2) Builder 3) Factory Method4) Prototype5) Singleton

2. Structural Patterns

3. Behavioral Patterns

Page 3: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Abstract Factory

Was ist die Abstract Factory?

- Schnittstelle zur Erzeugung einer Familie von Objekten

Wann benutze ich die Abstract Factory?

1. Ein System soll unabhängig von der Art/Erzeugung seiner Produkte arbeiten 2. Ein System soll mit einer oder mehreren Produktfamilien konfiguriert sein3. Eine Gruppe von Produkten soll erzeugt und gemeinsam genutzt werden4. Eine Klassenbibliothek soll Schnittstellen von Produkten ohne deren Implementierung bereitstellen.

Page 4: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Abstract Factory

AbstractFactory: definiert Schnittstelle zur Erzeugung abstrakter Produkte einer Produktfamilie ConcreteFactory: erzeugt konkrete Produkte einer Produktfamilie

AbstractProduct: definiert eine Schnittstelle für eine Produktart Product: definiert ein konkretes Produkt einer Produktart

Client: verwendet die Schnittstellen der abstrakten Fabrik und der abstrakten Produkte

Page 5: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Builder

Was ist der Builder?

- Eine Trennung der Konstruktion komplexer Objekte von deren Repräsentation

Wann benutze ich einen Builder?

1. Zu einem Objekt sollen unterschiedliche Repräsentationen existieren2. Die Konstruktion eines komplexen Objekts soll unabhängig von der

Erzeugung der einzelner Bestandteile sein

Page 6: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Builder

Builder: spezifiziert eine abstrakte Schnittstelle zur Erzeugung der Teile eines komplexen Objektes Concrete Builder: erzeugt die Teile des komplexen Objekts durch Implementierung der Schnittstelle

Director: konstruiert ein komplexes Objekt unter Verwendung der Schnittstelle des Builders

Product: repräsentiert das zu konstruierende komplexe Objekt.

Page 7: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Builder

Builder -> Converter: spezifiziert eine abstrakte Schnittstelle zur Erzeugung der Teile eines komplexen Objektes

ConcreteBuilder -> ASCIIConverter etc.: erzeugt die Teile des komplexen Objekts durch Implementierung der Schnittstelle

Director -> Reader: konstruiert ein komplexes Objekt unter Verwendung der Schnittstelle des Builders

Page 8: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Factory Method

Was macht die Factory Method?

- Ein Objekt durch Aufruf einer Methode statt durch direkten Aufruf eines Konstruktors erzeugen

Wann benutze ich die Factory Method?

1. wenn eine Klasse die von ihr zu erzeugenden Objekte nicht kennen soll2. wenn Unterklassen bestimmen sollen welche Objekte erzeugt werden

Page 9: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Factory Method

Creator: deklariert die FactoryMethod um ein Produkt zu erzeugen

ConcreteCreator: überschreibt die Fabrikmethode, um die entsprechenden Produkte zu erzeugen

ConcreteProduct : definiert eine Schnittstelle für eine Produktart

Page 10: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Factory Method

BaseCreator: deklariert die FactoryMethod um ein Produkt zu erzeugen

ConcreteCreatorB/A: überschreibt die Fabrikmethode, um die entsprechenden Produkte zu erzeugen

BaseProduct : definiert eine Schnittstelle für eine Produktart

Page 11: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Prototype

Was macht ein Prototype?

- Neue Instanzen werden aufgrund prototypischer Instanzen erstellt. Dabei wird eine Vorlage kopiert und an neue Bedürfnisse angepasst.

Wann benutze ich einen Prototype?

1. wenn sich die Objekte ähneln2. die zu instanziierenden Klassen erst zur Laufzeit bekannt sind

Page 12: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Prototype

Prototype: definiert eine Schnittstelle zur Kopie eines Objektes

ConcretePrototype: kopiert sich selbst durch Implementation der Schnittstelle

Client: erzeugt neue Objekte als Kopie bestehender Objekte und modifiziert sie.

Page 13: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Singleton

Was macht ein Singleton?

- Es verhindert, dass von einer Klasse mehr als ein Objekt erzeugt werden kann

Wann benutze ich ein Singleton?

1. nur ein Objekt zu einer Klasse existieren darf und ein einfacher Zugriff auf dieses Objekt benötigt wird

2. das einzige Objekt durch Unterklassenbildung spezialisiert werden soll

Page 14: Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen

Creational Patterns - Singleton

Vielen Dank für die Aufmerksamkeit!