11.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!