Show TOC Anfang des Inhaltsbereichs

Objektorientiertes Programmiermodell  Dokument im Navigationsbaum lokalisieren

 

Das objektorientierte Programmiermodell beruht auf der Verwendung von ABAP Objects.

 

1. Kapselung von Daten in Klassen.

Zwei Arten von Daten: Attribute von Klassen und lokale Daten in Methoden dieser Klassen. 

Lokale Daten spielen dieselbe Rolle wie im prozeduralen Modell.

Lebenszeit eines Attributs gebunden an die Lebenszeit des jeweiligen Objektes der Klasse.

Jedes Attribut einer Klasse hat eine Angabe darüber, ob es ausschließlich in der Klasse oder auch von außerhalb der Klasse sichtbar ist.

2. Explizite Instanzierung von Daten, Zugriff mit Hilfe von Referenzvariablen.

Es können mehrere Objekte einer Klasse erzeugt werden, jedes mit seinem eigenen Inhalt und eigenen Attributen.

Lebensdauer eines Objekts wird durch den User kontrolliert. In dem Moment, wo es keine Referenzvariable gibt, die auf das Objekt zeigt, wird es von dem Garbage Collector gelöscht.

Als Instanzen von Programmen leben Objekte in dem internen Modus des Hauptprogramms.

Folge: Einfachheit und Funktionalität, da die Klasse bloß die Daten enthält, die relevant für ein einziges Objekt sind (es spielt keine Rolle, ob eine Instanz oder mehrere erzeugt werden).

3. Konzept der Vererbung: spezialisierte Klassen erben von generellen Klassen.

Vorteile: kleine Klassen, kleine Schnittstellen, Polymorphie.

Polymorphie bedeutet, dass man die Verwendung der generellen Schnittstelle unabängig von der Implementierung in den Unterklassen gestaltet.  Unterklassen können Methoden spezialisieren.

4. Interfaces: explizit definierte Interfaces. Alle Komponenten, die in PUBLIC SECTION deklariert werden bilden eine Daten- und Funktionalitätsschnittstelle zwischen der Klasse und…..

Selbstständige Interfaces möglich. Referenzvariablen möglich, die auf diese Interfaces zeigen.  

Der User von solchen Referenzen kümmert sich nicht um die Klasse, in der sie definiert sind.

Die Klassen des Objektes spielen keine Rolle in Schleifen, in denen die Objekte verwendet werden.  ->Zweites „Element“ der Polymorphie.

5. Ereignisse:

 

Bild aus dem Artikel

Hinweis

ABAP Objects wurde mit Release 4.5/4.6 eingeführt. Seit dieser Zeit steht OO-Modell gleichberechtigt neben dem prozeduralen Modell. Beide Modelle sind interoperabel, d.h gegenseitige Aufrufe etc sind möglich. Z.B. Objekterzeugung in Funktionsgruppen oder Aufruf von Funktionsbausteinen aus Methoden möglich. Für Neuentwicklungen oder Umstrukturierungen vorhandener Programme wird die alleinige Verwendung des objektorientierten Modells empfohlen.

 

Zu Release 4.0 wurde der Begriff ABAP Objects eingeführt, der für die objektorientierte Spracherweiterung der Programmiersprache ABAP steht. Das bedeutet einerseits, dass ABAP Objects alle wichtigen Konzepte des objektorientierten Programmierparadigmas wie Kapselung, Vererbung und Polymorphie implementiert (siehe Was ist Objektorientierung? [Extern]) und andererseits dass es auf dem Sprachumfang von ABAP aufbaut. Sprachelente von ABAP Objects können nämlich in bestehenden Programmen verwendet werden, und umgekehrt: fast der gesamte bisher entwickelte  ABAP-Sprachumfang ist in den Methoden von ABAP Objects einsetzbar.

Der Einsatz bisheriger Sprachelemente hat den unschätzbaren Vorteil, dass alle Stärken einer Programmiersprache, die ihren Fokus auf die Entwicklung betriebswirtschaftlicher Client-Server-Anwendungen gesetzt hat weiterhin genutzt werden können. Dazu gehören unter anderem die Unterstützung mehrsprachiger Anwendungen, ein einfacher Zugriff auf die Datenbank oder etwa die Möglichkeit, kaufmännische Berechnungen durchzuführen. Darüber hinaus kann eine integrierte Entwicklungsumgebung benutzt werden, welche die Erstellung großer Anwendungssysteme durch viele Entwickler unterstützt. 

Die Abwärtskompatibilität zu älteren Versionen hat jedoch ihren Preis: Der Sprachumfang von ABAP enthält viele obsolete Konstrukte, die mittlerweile durch bessere Konzepte ersetzt worden sind, aber nicht entfernt werden können, um ältere ABAP-Programme lauffähig zu halten. Innerhalb von ABAP Objects, d.h. in Klassen, sind viele dieser obsoleten Sprachelemente syntaktisch verboten. Beispielsweise dürfen Sie keine internen Tabellen mit Kopfzeile mehr anlegen. Dies stellt aber keine inkompatible Änderung dar, da es ja kein altes Coding innerhalb von Klassen geben kann. In neuen Programmen sollte aber auch außerhalb von Klassen nur noch die in ABAP Objects erlaubte Syntax verwendet werden.

Die Einführung von ABAP Objects hat dazu geführt, dass ABAP heute zwei Programmiermodelle parallel unterstützt: ein klassisches (prozedurales) und ein objektorientiertes Programmiermodell.

·ein Dialogschritt eines Programms während seiner Ausführung genau einem Workprozess zugeordnet ist.Das prozedurale Programmiermodell beruht auf der Modularisierung von Programmen in funktionale Einheiten mit lokalen Datenbereichen. Bei diesem Ansatz wird bei ABAP die Funktionalität in Unterprogrammen und Funktionsbausteinen gekapselt. Unterprogramme dienen der internen Modularisierung des Programms während Funktionsbausteine wieder verwendbare Funktionalität für alle ABAP-Programme enthalten (siehe Modularisierungstechniken [Extern]).

·ein Dialogschritt eines Programms während seiner Ausführung genau einem Workprozess zugeordnet ist.Die objektorientierte Programmierung basiert auf der Kapselung von Daten und Funktionalität in Klassen, von denen Instanzen (Objekte) erzeugt werden. Polymorphie wird durch Einfachvererbung und Interfaces unterstützt (siehe ABAP Objects [Extern]).

 

Ende des Inhaltsbereichs