Entwurfsmuster nach GoF Vorlesung:
Entwurfsmuster und Frameworks
Stefan Hermanutz HTWG Konstanz
Gliederung
1 Allgemeine Beschreibung Klassifikation
Zweck Motivation Anwendung
2 Aufbau
UML Diagramm Teilnehmer Interaktion Konsequenzen
3 Implementierung
UML-Diagramm des Prototypbeispiels Quellcode zum Prototypbeispiel
Allgemeine Beschreibung
Klassifikation Prototyp (engl. Prototype) - ein objektbasiertes Erzeugungsmuster (Creational Patterns)
Zweck erzeuge artgleiche Objekte ¨uber ein prototypisches Exemplar
Erzeugung erfolgt durch Kopieren des
Prototypen ohne genaues Wissen des spez. Typs Motivation Trennung zwischen allgemeing¨ultiger
Verwendung und spezifischer Erzeugung Bsp: Editor Framework und Editor f¨ur Musikpartitur
Allgemeine Beschreibung
Anwendung geforderte Unabh¨angigkeit zwischen System und Produkt (erzeugen, zusammensetzen und repr¨asentieren) und:
3 F¨alle Klassen erst zur Laufzeit spezifiziert werden vermeiden von parallelen Klassenhierarchieen bei Fabriken und Produkten
einzelnne Exemplare nur geringe Unterschiede aufweisen und so Vereinfachung
Struktur
allgemeines UML Diagramm
Teilnehmer
Prototyp deklariert Schnittstelle / abstrakte Methode zum Klonen von sich selbst
KonkreterP. Implementierung des eigenen Klonvorganges Klient erzeugt neues Objekt durch Klone Operation
seines Prototypen
Interaktion
Klient→ Prototyp Klient befiehlt seiner Prototypinstanz, sich selbst zu klonen
Konsequenzen
Gemeinsames mit Abstrakte Fabrik und Erbauer versteckt die konkreten Klassen
Klient kann ohne Ver¨anderung spez. Klassen zu verwenden
Flexibilit¨at M¨oglichkeit w¨ahrend der Laufzeit Produkte hinzuzuf¨ugen oder zu entfernen
Dynamisches Konfigurieren einer Anwendung mit Klassen
Spezifikation erm¨oglicht neue Objkte zu spezifizieren durch die Variation von Werten
oder durch Variation der Struktur
Unterklassen Durch einfachs Klonen brauche ich keine spez.
Erzeugerklassen wie bei der Fabrikmethode
Allgemeines zur Implementierung
Klonen jede Unterklasse ben¨otigt diese Methode flache oder tiefe Kopie
Verwalter Verwendung eines Prototyp Verwalters wenn Anzahl und Art der Prototyp nicht festgelegt ist Initialisierung bestimmt Initialisierung der geklonten Objekte
nicht m¨oglich
Ubergabeparamter ist Widerspruch zur¨ einheitlichen Schnittstelle
Das Muster Protoyp beim Bierbrauen
Thema Bierbrauen ohne genau Kenntnisse¨uber das Rezept der Biersorten
Klient Bierbrauer Prototyp Bier(sorten)
Vorgehen Der Bierbrauer bekommt ein Bier einer Sorte Das Bier weiß selbst wie es sich
reproduziert/braut
Quellcode des/der abstrakten/konkreten Prototypen
abstrakter Prototyp
Konkreter Prototyp 1 Konkreter Prototyp 2
Quellcode des Klient und Programm
Klient Programm
Ausgabe
Ein weiteres Beispiel - cookies
Zusammenhang zu anderen Mustern
Verwandt Konkurenz mit Abstrakter Fabrik aber auch zusammen m¨oglich
Verwendung Kompositionsmuster und Dekoriermuster k¨onnen vom Protoypmuster profitieren
zu seiner Implementierung kann Protyp Singelton verwenden (?)
Literatur GoF Entwurfsmuster 2004 Diskussion Vewendung von Singelton
...