Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.5. OBJEKT-ORIENTIERTES FRAMEWORK 21<br />
Von Mehrfachvererbung spricht man, wenn eine abgeleitete Klasse mehrere<br />
Vorgängerklassen hat.<br />
Vererbung fördert die Wiederverwendung von Methoden und Attributen<br />
und damit von Code. Gemeinsamer Code kann in einer gemeinsamen<br />
Basisklasse eingebracht und allen Erben zur Verfügung gestellt werden.<br />
2.4.3 Polymorphismus<br />
Polymorphie ist die wichtige Fähigkeit, verschiedene Implementationen<br />
hinter einem gleichen Namen verbergen zu können. Dies wird mit einem<br />
Mechanismus (dynamische Bindung) realisiert, der erst zur Programmlaufzeit<br />
entscheidet, ob und welche Methode eines Objektes aufzurufen<br />
ist, um diesem eine bestimmte Botschaft mit einem bestimmten Namen<br />
zu schicken. Daher kommt die Polymorphie erst beim Verschicken von<br />
Botschaften zum Tragen.<br />
<strong>Eine</strong> Methode, die beispielsweise die Matrix-Elemente addiert, wird<br />
korrekt arbeiten, solange alle Elemente der Matrix die Botschaft “Addiere”<br />
verstehen, egal aus welcher Klasse die zu summierenden Elemente stammen.<br />
In Systemen ohne Polymorphie wären Fallunterscheidungen notwendig,<br />
um je nach Typ des Matrix-Elementes und möglicherweise des aktuellen<br />
Typs der bisherigen Summe eine passende Prozedur für die Addition<br />
aufzurufen. Die Gefahr für den Software-Entwickler besteht dabei darin,<br />
dass er einen Fall vergisst. Ferner ist es schwierig, eine solche Software<br />
wiederzuverwenden, da kleine Änderungen dem System sehr wahrscheinlich<br />
weitere Fälle aufbürden. Da die Fallunterscheidungen über das ganze<br />
System verstreut sind, wird es ebenso verstreute Modifikationen bedingen,<br />
ehe das System wiederverwendet werden kann.<br />
Polymorphie vereinfacht daher die Kommunikation unter Objekten ganz<br />
erheblich. Ferner erlaubt es dem Software-Entwickler, eine eigene Version<br />
einer Klasse zu erzeugen, diese wieder in das System einzubauen und an<br />
der Stelle des Originals in Betrieb zu nehmen.<br />
2.5 Objekt-orientiertes Framework<br />
Die in Bibliotheken gesammelten Klassen sind in vielen Fällen nützlich<br />
und sehr flexibel, haben aber folgende Nachteile:<br />
<strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-E