article

Prototyp.png Ein Prototyp (engl. Prototype) ist ein Entwurfsmuster (design pattern) aus dem Bereich der Softwareentwicklung und gehört zur Kategorie der Erzeugungsmuster (Creational Patterns). Das Muster nutzt prototypische Instanzen zur Erzeugung neuer Instanzen. Dazu wird eine alte Instanz kopiert und dann an die Bedürfnisse angepasst. Man unterscheidet zwischen flacher Kopie (Cloning) und tiefer Kopie (Deep Cloning). Das Muster ist eines der sogenannten GoF-Muster (Gang of Four, siehe Viererbande).

__TOC__

Verwendung


Ein Prototyp findet Anwendung, wenn
  • die Erzeugung weiterer Instanzen einer Klasse teuer ist und sich die Objekte ähneln,
  • die zu instanziierenden Klassen erst zur Laufzeit bekannt sind,
  • eine Hierarchie von Fabriken parallel zu einer Hierarchie von Produkten vermieden werden soll oder
  • wenn die Objekte einer Klasse nur wenige Zustandskombinationen einnehmen können.

UML-Diagramm


Prototyp.png

Akteure


  • Prototyp
    • definiert eine Schnittstelle zur Kopie eines Objektes
  • KonkreterPrototyp
    • kopiert sich selbst durch Implementation der Schnittstelle
  • Klient
    • erzeugt neue Objekte als Kopie bestehender Objekte
    • modifiziert neue Objekte

Vorteile


  • Komplexe Objekte lassen sich schneller erzeugen.
  • Neue Unterklassen können zur Laufzeit eingebunden werden.
  • Neue Objekte können durch Variation der Struktur spezifiziert werden.
  • Es gibt keine Erzeuger-Klassenhierarchie parallel zur Klassenhierarchie der Produkte.

Nachteile


  • Die Erstellung einer Kopie eines Objektes ist aufwendig.
  • Jede Unterklasse muss Kopie-Operation implementieren.
  • Eventuelle Initialisierungen des kopierten Objekts müssen zusätzlich erfolgen.

Beispiel


interface Prototyp { public Prototyp clone(); }

Verwandte Entwurfsmuster


Einerseits konkurrieren abstrakte Fabrik und Prototyp miteinander, weil sie beide unterschiedliche Objekte erzeugen. Andererseits lassen sie sich miteinander kombinieren, wenn eine abstrakte Fabrik Prototypen erzeugt, die dann anschließend geklont werden können.

Kompositum und Dekorierer werden häufig gemeinsam mit Prototypen verwendet.

Entwurfsmuster

Prototype pattern | Prototype (patrón de diseño) | Prototype

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Prototyp (Entwurfsmuster)".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld