Was ist der Vorteil von Objektorientierter Programmierung?

3 Antworten

Anschauliches Beispiel aus der Praxis aus dem Bereich Embedded-Programmierung:

Ich benötige einen digitalen Filter. Ich brauche dafür folgende Funktionalitäten:

  • Neue Samples an den Filter übergeben.
  • Erkennen können, ob der Filter ein neues Ergebnis bereitgestellt hat.
  • Bereitgestelltes Ergebnis des Filters auslesen. Nach dem Auslesen des Ergebnisses soll das Flag "es gibt ein neues Ergebnis" zurückgesetzt werden.
  • Filter parametrieren.
  • Filter resetten.

Wenn ich das mit strukturierter Programmierung (in Embedded Systemen meist in C) realisieren will, brauche ich viele Funktionen bzw. Prozeduren (also in C Funktionen mit void Ergebnis) und globale Variablen und/oder "Zeiger auf Struct" Konstrukte um die Funktionen/Prozeduren mit einander zu verbinden und nutzbar zu machen (es sind auch andere Lösungen denkbar, die aber typischerweise ebenfalls kompliziert sind).

Mit OOP lässt sich das einfacher realisieren.

Woher ich das weiß:Berufserfahrung

Im richtigen Leben sind Objekte und was man mit ihnen machen kann immer zusammen. Ein Legostein hat als “Interface”, also was man mit ihm tun kann, die Ober- und Unterseite. Da kann man jeweils etwas anbauen.

In einem prozeduralen Programm sind Daten (also die “Objekte” der Programmierung) und Prozeduren (was mit den Objekten getan werden kann). Das ist unnatürlich und darum gedanklich schwer zu handhaben. Objektorientierte Programmierung bringt dies wieder zusammen.

Objektorientierte Programmierung ermöglicht es, komplexe Probleme in kleinere, wiederverwendbare Module (Objekte) zu zerlegen. Dadurch wird der Code besser strukturiert/organisiert, erleichtert die Zusammenarbeit und man kann das Programm besser warten, erweitern oder aktualisieren.