homeSoftwaredesign Softwaredesign: Prototyp Prof. Dr. Uwe Schmidt FH Wedel

Prototyp

weiter

weiter

Prototyp

Klassifizierung
objektbasiertes Erzeugungsmuster
weiter
Zweck
Erzeugung von Objekten durch Kopieren (klonen) von einem prototypischen Exemplar
weiter
Alias
prototype
weiter
Motivation
Systemspezifische Objekte in der Initialisierungsphase einmal erzeugen
# der Konstruktoraufrufe minimieren und an einer Stelle lokalisieren
komplexere Objekte mit vielen Attributen einmal erzeugen, anschließend kopieren und anpassen
alle Attribute sind mit einheitlichen default-Werten initialisiert.
einfacher als jedesmal vollständig neu erzeugen
weiter
Beispiel
weiter
Anwendbarkeit
System unabhängig machen von der konkreten Zusammensetzung und Repräsentation der Objekte
Klassen der zu erzeugenden Objekte können zur Laufzeit spezifiziert werden
Vermeidung von Klassenhierachien von Fabriken
weiter
Struktur
Strukturdiagramm
weiter
Teilnehmer
  Prototyp
Schnittstelle der zu kopierenden Objekte
  KonkreterPT[1-2]
Klassen, die die clone-Operation implementieren
  Klient
erzeugt Objekte durch Aufrufe von clone()
weiter
Konsequenzen
ähnlich flexibel wie die Abstrakte Fabrik
aber: es wird von allen Klassen ein Prototyp-Objekt benötigt
die Menge der Attribute kann ohne Kenntnis und ohne Modifikation der Klienten vergrößert werden.
weiter
Implementierung
Prototyp-Verwalter für viele Prototypen
Zugriff über Schlüssel
dann auch Prototyp-Erzeugung auf Anforderung (on demand)
Verwalter kann eine Abstrakte Fabrik sein.
Beispiel einer Fabrik mit Prototypen
tiefes <--> flaches Kopieren beim Klonen
merke
Tiefe des Klonens ist problemabhängig
merke
Vorsicht beim Klonen von zyklischen Strukturen
weiter
Beispiele
weiter
verwandte Muster
konkuriert mit Prototyp
kann aber auch mit Prototyp kombiniert werden
weiter
auch Komposita können über Klonen als Prototypen genutzt werden
z.B. Transformationen: Muster erzeugen, kopieren und modifizieren
weiter

Letzte Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel