Definition

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) ist ein Computerprogrammiermodell, das das Softwaredesign um Daten oder Objekte herum organisiert und nicht um Funktionen und Logik. Ein Objekt kann als Datenfeld mit eindeutigen Attributen und Verhalten definiert werden.

Fortsetzung des Inhalts unten

OOP konzentriert sich auf die Objekte, mit denen das Programm interagieren soll, und nicht auf die Logik, die zu ihrer Manipulation erforderlich ist. Dieser Programmieransatz eignet sich gut für Software, die groß und komplex ist und aktiv aktualisiert oder gewartet werden muss.

Der Aufbau eines objektorientierten Programms ist auch für auch das Entwickeln in Zusammenarbeit von Vorteil, bei der Projekte auf Gruppen aufgeteilt bearbeitet werden.

Weitere Vorteile von OOP sind die Wiederverwendbarkeit von Code, Skalierbarkeit und Effizienz. Auch beim Einsatz von Microservices sollten Entwickler weiterhin die Prinzipien von OOP anwenden.

Der erste Schritt in OOP besteht darin, alle Objekte zu sammeln, die ein Programmierer manipulieren möchte, und zu identifizieren, wie sie miteinander in Beziehung stehen – eine Übung, die oft als Datenmodellierung bezeichnet wird.

Objektorientierung am Beispiel eines Mitarbeiter
Abbildung 1: Am Beispiel eines Mitarbeiters ist zu erkennen, wie Objekte klassizifiert und einebunden werden.

Beispiele für ein Objekt können von physischen Einheiten, wie einem Menschen, der durch Eigenschaften wie Name und Adresse beschrieben wird, bis hin zu kleinen Computerprogrammen wie Widgets reichen.

Sobald ein Objekt bekannt ist, wird es einer Klasse von Objekten zugeordnet, welche die Art der enthaltenen Daten und alle logischen Sequenzen definiert, die das Objekt manipulieren können. Jede unterschiedliche Logiksequenz wird als Methode bezeichnet. Objekte können mit gut definierten Schnittstellen kommunizieren, die als Nachrichten bezeichnet werden.

Prinzipien von OOP

Objektorientierte Programmierung basiert auf folgenden Prinzipien:

  • Verkapselung. Die Implementierung und der Zustand jedes Objekts werden privat innerhalb einer definierten Grenze oder Klasse gehalten. Andere Objekte haben keinen Zugriff auf diese Klasse oder die Berechtigung, Änderungen vorzunehmen, sondern können nur eine Liste öffentlicher Funktionen oder Methoden aufrufen. Das bietet eine größere Programmsicherheit und vermeidet unbeabsichtigte Datenbeschädigung.
  • Abstraktion. Objekte offenbaren nur interne Mechanismen, die für die Verwendung anderer Objekte relevant sind, und verbergen unnötigen Implementierungscode. Dieses Konzept hilft Entwicklern, im Laufe der Zeit nderungen und Ergänzungen vorzunehmen.
  • Inheritance. Beziehungen und Unterklassen zwischen Objekten können zugewiesen werden, sodass Entwickler eine gemeinsame Logik wiederverwenden können, während gleichzeitig eine eindeutige Hierarchie beibehalten wird. Diese Eigenschaft von OOP erzwingt eine gründlichere Datenanalyse, verkürzt die Entwicklungszeit und sorgt für eine höhere Genauigkeit.
  • Objekte können je nach Kontext mehr als eine Form annehmen. Das Programm bestimmt, welche Bedeutung oder Verwendung für jede Ausführung dieses Objekts erforderlich ist, und reduziert die Notwendigkeit, Code zu duplizieren.

Objektorientierte Programmiersprachen

Simula gilt als erste objektorientierte Programmiersprache. Zu den beliebtesten OOP-Sprachen gehören jedoch:

OOPSLA ist die jährliche Konferenz für objektorientierte Programmiersysteme, -sprachen und -anwendungen.

Kritik an OOP

Das objektorientierte Programmiermodell wurde von Entwicklern aus mehreren Gründen kritisiert. Die größte Sorge besteht darin, dass OOP die Datenkomponente der Softwareentwicklung überbetont und sich nicht genug auf Berechnungen oder Algorithmen konzentriert. Darüber hinaus kann OOP-Code komplizierter zu schreiben sein und länger dauern, um zu kompilieren.

Alternative Methoden zu OOP sind:

Die meisten fortgeschrittenen Programmiersprachen bieten Entwicklern die Möglichkeit, diese Modelle zu kombinieren.

Diese Definition wurde zuletzt im Juni 2021 aktualisiert

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close