WikiDer > Prototypbasierte Programmierung
Prototypbasierte Programmierung ist eine Form von Objekt orientierte Programmierung in denen nein Klassen vorhanden. Anstatt Klassen zu verwenden, a Objekt Kopie bestehender Objekte, die als Prototypen dienen. Dieses Modell wird auch als klassenlose, „prototyporientierte“ oder „instanzbasierte“ Programmierung bezeichnet. Prototyping wird von Sprachen unterstützt, die Delegation Unterstützung.
Die erste Sprache, die dies verwendet, ist Selbst. Die Popularität des klassenlosen Programmierens hat seitdem zugenommen Javascript unterstützt die Idee ebenfalls und verwendet JavaScript für komplexere Software. Andere Sprachen sind: ActionScript, Cecil, NewtonScript, Io, SCHÖN, REBOL, Lisaac und lua.
Vergleich mit klassenbasierten Modellen
In klassenbasierten Sprachen wird die Struktur von Objekten durch vom Programmierer definierte Typen bestimmt, die als "Klassen" bezeichnet werden. Klassen definieren den Datentyp und die Funktionalität eines Objekts. Instanzen davon sind 'benutzbare' Objekte, die auf dieser Klasse basieren. In diesem Modell sind Klassen eine Sammlung von Methoden und Struktur, die für alle Instanzen dieser Klasse gelten und für das gesamte Programm so bleiben. Instanzen enthalten die Daten. Der Unterschied zwischen Klassen und Instanzen ist also einerseits Struktur und Verhalten (die Methoden) und andererseits Zustand (die Daten).
Prototypbasierte Sprachen haben diese Unterscheidung nicht. Anstatt eine Klasse zu instanziieren, wird ein vorhandenes (Prototyp-)Objekt kopiert. Während eine Klasse als Blaupause für ein Objekt angesehen werden kann, existiert die Basis von Objekten bereits in prototypbasierten Sprachen aus dem Nichts gemacht werden. Das bedeutet, dass Objekte zur Laufzeit des Programms erstellt werden können.Ein weiterer großer Unterschied besteht darin, dass bei prototypbasierten Sprachen Objekte geändert werden können. Das heißt, Methoden und Eigenschaften können während der Laufzeit hinzugefügt und entfernt werden. Wenn dies mit dem Prototypobjekt passiert, erhalten alle Objekte, die Kopien davon sind, diese Änderung.