Prototyp [ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]


Übersicht

[klick] zum vergrössern
 Abb. 1: Das Prototype Design Pattern

Ein Prototype ist ein Objekt, welches eine Kopie von sich selbst durch Klonen herstellen kann. Das Prototype-Pattern definiert daher eine abstrakte Klasse «Prototype», die eine Methode clone() zur Zurückgabe der Kopie des Prototypen besitzt. Implementationen dieser Klasse, die im Pattern unter dem Stereotyp «ConcretePrototype» zusammengefasst werden, implementieren demzufolge die Methode so aus, dass eine identische Kopie des «ConcretePrototype» zurückgegeben wird.

Der «Client» nutzt einen «Prototype» dadurch, dass er bei Bedarf neue Instanzen von diesem per Aufruf der clone()-Methode anfordert. Der «Client» agiert nur auf der abstrakten Schnittstelle «Prototype». Daher können dem «Client» unterschiedliche Prototypen zugewiesen werden, ohne dass zur Implementationszeit diese speziellen Klassen bekannt sein müssen.

Die Stereotypen im Überblick:

  • «Prototype»
    - deklariert eine Schnittstelle, um sich selbst zu klonen.


  • «ConcretePrototype»
    - implementiert eine Operation, um sich selbst zu klonen.


  • «Client»
    - erzeugt ein neues Objekt, indem es einem Prototypen befiehlt, sich selbst zu klonen.


Quelle: E.Gamma, R.Helm, R.Johnson, J.Vlissides: Entwurfsmuster, Addison Wesley Verlag 2004


[ Übersicht ] [ Beispiel ] [ Quellen ] [ Home Entwurfsmuster ]
Stand: 31.03.2005, Autor: Jens Günther