140 likes | 235 Views
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 SoSe 2011 Dennis Kiewning. Creational Patterns.
E N D
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 SoSe 2011 Dennis Kiewning
Creational Patterns • 1.Was sind Creational Patterns? • - Entwürfe, die Objekterzeugungsprozesse abstrahieren • 1) Abstract Factory • 2) Builder • 3) Factory Method • 4) Prototype • 5) Singleton • 2. Structural Patterns • 3. BehavioralPatterns
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 sein • 3. Eine Gruppe von Produkten soll erzeugt und gemeinsam genutzt werden • 4. Eine Klassenbibliothek soll Schnittstellen von Produkten ohne deren Implementierung bereitstellen.
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
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 existieren • 2. Die Konstruktion eines komplexen Objekts soll unabhängig von der Erzeugung der einzelner Bestandteile sein
Creational Patterns -Builder Builder: spezifiziert eine abstrakte Schnittstelle zur Erzeugung der Teile eines komplexen Objektes ConcreteBuilder: 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.
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
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 soll • 2. wenn Unterklassen bestimmen sollen welche Objekte erzeugt werden
Creational Patterns - Factory Method Creator: deklariert die FactoryMethodum ein Produkt zu erzeugen ConcreteCreator: überschreibt die Fabrikmethode, um die entsprechenden Produkte zu erzeugen ConcreteProduct : definiert eine Schnittstelle für eine Produktart
Creational Patterns - Factory Method BaseCreator: deklariert die FactoryMethodum ein Produkt zu erzeugen ConcreteCreatorB/A: überschreibt die Fabrikmethode, um die entsprechenden Produkte zu erzeugen BaseProduct : definiert eine Schnittstelle für eine Produktart
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 ähneln • 2. die zu instanziierenden Klassen erst zur Laufzeit bekannt sind
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.
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
Creational Patterns - Singleton • Vielen Dank für die Aufmerksamkeit!