Generalisierung

Was ist Generalisierung?

Generalisierung ist eines der Kernkonzepte der objektorientierten Programmierung. Die Objektorientierte Softwareentwicklung nutzt generalisierte Klassen und Objekte um gemeinsame Eigenschaften (Attribute) und Funktionen (Methoden) in logischen Einheiten zu bündeln.

Generalisierung als Konzept der objektorientierten Programmierung

Generalisierung als Konzept der objektorientierten Programmierung: Die Klassen Auto und Motorrad erben jeweils die Eigenschaften der Superklasse Fahrzeuge.

Was ist ein generalisierter Objektentwurf?

Von einem generalisierten Objektentwurf spricht der Informatiker immer dann, wenn Objekte durch eine eigenständige Klasse darstellbar sind. Die Generalisierung führt logisch zusammengehörige Objekteigenschaften in einer Objektklasse zusammen. so dass aus dieser Klasse

Vorteile der Generalisierung für die Programmierung

  • deutliche Reduktion des Programmieraufwands
  • übersichtliche und verständliche Objektklassen
  • konsequente Objektorientierung
  • Spezialisierung durch Klassenerweiterungen

Generalisierung und die Superklassen / Subklassen

Das Klassendiagramm oben zeigt den Vorgang, der in der objektorientierten Programmierung als Generalisierung bezeichnet wird. Objekte mit gemeinsamen Eigenschaften werden zu einer allgemeineren Kategorie, der sogenannten Superklasse, zusammengefasst. Der Pfeil des Klassendiagramms zeigt dieses generalisierte Zusammenfassen an. Umgekehrt bezeichnet der Informatiker etwa „Auto“ als Subklasse von „Fahrzeuge“.

Spezialisierung und Erweiterung

Erweiterung: Natürlich ist es möglich und sinnvoll unsere Fahrzeughierarchie noch weiter zu generalisieren. Alle Fahrzeuge – egal ob Zweiräder, Pkw oder auch Flugzeuge – teilen gewissen Eigenschaften.  Wir können also in Richtung einer übergeordneten Superklasse „Transportmittel“ erweitern und alle unsere bestehenden Fahrzeuge sowie zusätzlich auch Luft- und Wasserfahrzeuge ergänzen.

Spezialisierung: Wenn wir unserer Modell verfeinern wollen, indem wir weitere Klassen wie „Sportwagen“, „Limosine“ oder „Kombi“ ergänzen, so definieren wir diese spezialisierten Klassen als Subklassen der bereits existierenden Klasse „Auto“. Die Spezialisierung beruht auf dem gleichen Konzept, nur das sich der Programmierer im Klassenbaum logisch von oben nach unten arbeitet.

Objektorientierung und Agile Softwareentwicklung

Einer der größten Vorteile der Objektorientierung in der Programmierung ist die beliebige Wiederverwendbarkeit definierter Programmlogik. Objektressourcen stehen in Form vielfältigster Objektklassen zur freien Verwendung.

Jetzt lesen: Wie Du Software agil entwickelst und deine Softwareprogramme leicht portierbar gestaltest.

Ähnliche Einträge

Zum Glossar

Neuer Artikel!