|
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
|