14.2 Evolution und Spezialisierung
OOP beschränkt sich nicht nur auf das Finden von Objekten und die Definition von Prototypen (Klassen). Es geht vielmehr darum, generische Elemente oder Klassen von Elementen zu erstellen und diese dann zu erweitern (Evolution) und der Aufgabe anzupassen (Spezialisierung).
Hier klicken, um das Bild zu Vergrößern
Abbildung 14.1
Eine Klasse kann die Methoden und Eigenschaften einer anderen Klasse übernehmen (erben) und erweitern oder anpassen.
Wenn Sie in einer Anwendung viele Freund-Objekte benoetigen, dann erstellen Sie eine Klasse fuer Freunde und erzeugen bezueglich dieses Prototyps fuer Freunde immer wieder neue Freunde, die sich nur durch wenige unterschiedliche Werte der Eigenschaften voneinander unterscheiden. Moeglicherweise benoetigen Sie in einer Anwendung aber nicht nur Freund-Objekte, sondern in derselben oder einer anderen Anwendung auch ein Vater-Objekt. Dann muessten Sie jedes Mal ein komplett neues Objekt bzw. eine komplett neue Klasse als Vorlage erstellen. Hier hilft OOP mit der Vererbung. Sie erstellen eine Klasse fuer alle Maenner, von der Sie jeweils eine Klasse fuer Freunde und Vaeter ableiten und um die jeweiligen speziellen Eigenschaften erweitern. Die Klasse fuer alle Maenner enthaelt alle Bestandteile, die fuer jeden Mann zutreffen und an alle abgeleiteten Klassen vererbt werden. Die abgeleiteten Klassen lassen sich dann beliebig erweitern und anpassen.
So erhalten Sie ein sehr flexibles Gerüst aus Klassen, die sich effizient einsetzen lassen. Sollte es sich in Ihrem Projekt z.B. ergeben, dass Sie eine zusätzliche Eigenschaft für Männer benötigen, dann reicht es aus, diese der Klasse für Männer hinzuzufügen, und schon steht sie für Freunde und Väter zur Verfügung.
Dieses Konzept funktioniert nicht nur bei Männern, sondern bei zahlreichen Bestandteilen einer Anwendung. Zum Beispiel könnte es eine Klasse für alle Gegner in einem Arkade-Spiel geben. Davon abgeleitet sind dann Klassen für grüne Gegner und rote Gegner. Auch die Elemente einer Diashow lassen sich so zusammenbauen. Sie erzeugen eine Klasse für Folien, aus der wiederum verschiedene Klassen für unterschiedliche Folientypen abgeleitet werden. In vielen Fällen lassen sich für spezielle Bedürfnisse allgemeinere Vorlagen finden, die mit Hilfe von Evolution oder Spezialisierung den Anforderungen angepasst werden und gleichzeitig die Flexibilität und Wiederverwendbarkeit erhöhen.
|