| Weitere Artikel aus dem Webentwickler Blog |
| Teilen |
In diesem Teil der Reihe geht es um Techniken wie die Klassenvererbung und Objektkomposition sowie die Delegation und deren Bedeutung für die objektorientierte Entwicklung. Die Klassenvererbung funktioniert vom Prinzip her sehr einfach: Hier erbt eine Unterklasse die Implementierung und den Typ ihrer Oberklasse.
Dem abgeleiteten Objekt können neue Variablen und Methoden hinzugefügt werden, somit ist eine Wiederverwendung realisiert. Diese Technik der Wiederverwendung ist auch als White-Box-Wiederverwendung bekannt, da die Struktur des Elternobjekts eingebunden wird und somit bekannt ist.
Die Objektkomposition hingegen basiert auf der Technik, Objekte bestehender Klassen in eine Struktur einzubeziehen, beispielsweise durch Aggregation. Da hier lediglich die Schnittstelle des Objekts bekannt ist, wird diese Art von Wiederverwendung auch als Black-Box-Wiederverwendung bezeichnet.
Die Klassenvererbung ist Teil der Programmiersprache und einfach zu realisieren. Die geerbten Methoden können beibehalten oder überschrieben werden, die Variablen werden ergänzt, genutzt oder ignoriert. Hier lässt sich schon erahnen, dass die Klassenvererbung zu unsauberem Programmierstil verleiten kann.
Die Vorteile der Objektkomposition liegen ganz klar in der Flexibilität. Beziehungen zwischen Objekten lassen sich, im Gegensatz zu denen zwischen Klassen, zur Laufzeit dynamisch erzeugen und verwerfen. Darüber hinaus sind die beteiligten Objekte lediglich durch die Schnittstelle bekannt und können somit gegen eine ähnliche Schnittstelle ausgetauscht werden, ohne dass auf die unterschiedlichen Implementierungen Rücksicht genommen werden muss – sofern die Spezifikation erfüllt bleibt. Für die Nutzung der Wiederverwendung durch Objektkomposition spricht auch, dass die Klassenvererbung die Klassenhierarchie verkompliziert und es dabei zu weiteren Abhängigkeiten kommt: Jede Veränderung der Implementierung oder der Struktur einer Oberklasse wirkt sich auf die abgeleitete Unterklasse aus.
Der Vergleich zwischen Klassenvererbung und Objektkomposition ist eigentlich nicht notwendig, da beide Techniken zur Anwendung kommen müssen. Schließlich muss eine Klassenhierarchie existieren, um überhaupt Objekte zur Objektkomposition ableiten zu können. Da jedoch die Erfahrung lehrt, dass selten der kompliziertere Weg der Objektkomposition gewählt wird, sollte jeder Entwickler die Möglichkeiten und Konsequenzen beider Techniken kennen. Das Wissen um den richtigen Einsatz beider Techniken bedarf einer gewissen Erfahrung, die letzten Endes den Experten ausmacht.
Tipp: Das Durcharbeiten der Entwurfsmuster ist vor allem für unerfahrene Entwickler sinnvoll, um für die Feinheiten des objektorientierten Softwareentwurfs »sensibilisiert« zu werden.
Delegation
Ganzen Artikel lesen...






































