3 Konfigurationsmöglichkeiten von Software

3.2.4.2 Polymorphismus



In den objektorientierten Sprachen gibt es Möglichkeiten, Teile eines Programms einer ordnenden Betrachtung zu unterziehen und so Komponenten abzugrenzen.111
Dies kann z.B. das zentrale Konzept des Polymorphismus, die Vielgestaltigkeit von Methoden in der Objektorientierung sein. Er ist 'die Möglichkeit, Objekte passender Schnittstellen zur Laufzeit füreinander einzusetzen.'112
So gibt es unterschiedliche Arten des Polymophismus113:

Gleichnamige Methoden können so auf Objekte unterschiedlicher Klassen angewendet werden. Methoden der Superklassen werden bei Nutzung einer gleichnamigen Methode in Subklassen ersetzt, man spricht von Überladung. Wichtig ist hierbei nur die passende Schnittstelle des Objektes, andere Informationen z.B. über die Klasse, die dem Objekt angehört, sind nicht relevant. Damit ist man beim Stellen einer Anfrage vor der Ausführung nicht auf eine bestimmte Implementierung festgelegt. Gerade bei generischen Komponenten wie Templates kommt der Polymorphismus zum Tragen. Entscheidend ist lediglich die Kompatibilität.
Objekte können auch während der Laufzeit ausgetauscht werden, so dass Objekte unterschiedlicher Klassen bei gleichen Anfragen unterschiedlich reagieren. Die Festlegung, welche Methode der Sub- oder Superklasse auf das Objekt angewendet wird, erfolgt erst zur Ausführungszeit. Dies wird das Prinzip der späten Bindung genannt114.
Die bereits vorgestellten Entwurfsmuster nutzen ebenso den Polymorphismus. Dadurch helfen sie, Schnittstellen und deren Elemente und Daten zu identifizieren und damit auch flexibel wiederverwendbare Software herzustellen.115
Bewertung des Polymorphismus116
Vorteile Nachteile
  • Erspart aufwändige Switchanweisungen
  • Festlegung von anzuwendenden Methoden erfolgt erst bei der Ausführung des Codes
  • Mehrmalige Verwendung von Namen möglich
  • Der Sender muss lediglich wissen, dass der Adressat die Nachricht versteht
  • Rechtevergaben müssen bei Modifizierung der Objekte nicht überprüft werden
  • Effizienzverbesserungen bezüglich Zeit und Speicherplatz bei großen Programmen
  • Reduziert den Code-Umfang und vereinfacht das Handling
  • Fördert die Entwicklung wiederverwendbarer Komponenten
  • Das Prinzip des Polymorphismus kann selbst in anwendungsneutralen, wiederverwendbaren Klassenkonstrukten entwickelt werden
  • Polymorphismus ist auf jede Methode anwendbar
  • Implementierung sehr aufwändig und bedarf Experten
  • Testbarkeit schwierig umzusetzen
  • Programmablauf nicht aus dem Quellcode ableitbar
  • Alle dynamischen Abläufe müssen getestet werden
  • Wird Polymorphismus mehrfach wiederholt, explodiert die mögliche Anzahl der Ablaufpfade
Tabelle 19: Bewertung des Polymorphismus


 


Top| Home| << Zurück | Nächste >>
" TARGET="_blank"> >> Home Page <<