Vor- und Nachteile ABAP-Objects

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

ABAP-Objects bringt gegenüber der prozedulane Programmierung und Funktionsbausteinen einige Vorteile, hat aber auch Nachteile.

Vorteile ABAP-Objects

  • Es steigt der Wiederverwendungsgrad der Software-Komponenten
  • Die Sichtbarkeit von Variablen (Attributen) und Modulen (Methoden) kann deutlich feiner gesteuert werden als in der klassischen Programmierung. Mit "Public" definierte Methoden stellen die Schnittstellen einer Klasse nach außen dar, während die Methoden mit "Protected" und "Private" für die internen Aufrufe innerhalb der Klassen gedacht sind. Sollen Methoden vererbt werden, dürfen sie nicht "Private" sein.
  • Zur Einführung von ABAP-Objekts konnten obsolete Programmierelemente in Methoden/Klassen verboten werden. In Klassen verhindert nun die Syntaxprüfung, dass die veraltete obsolete Programmierung genutzt wird. So kann es in ABAP-OO z. B. keine internen Tabellen mit Kopfzeile geben.
  • Die Gruppierung von Methoden innerhalb einer Klasse ist deutlich besser als die Gruppierung von Funktionsbausteinen innerhalb einer Funktionsgruppe.
  • Wird von einem Entwickler lediglich eine Methode einer Klasse verändert, wird auch nur diese Methode gesperrt. Andere Entwickler können weiterhin andere Methoden der Klasse verändern und transportieren. Hier ist ein Vorteil gegenüber Form-Routinen, die in einem Hsuptprogramm, bzw. Include gespeichert sind und somit auch alle zusammen gesperrt werden.

Nachteile ABAP-Objects

  • ABAP Objects führt gegenüber der klassischen prozedualen Programmierung mit Klassen, Methoden, Attributen, Vererbung, etc. neue Begriffe und neue Programmierkonzepte in die ABAP-Programmierung ein und erfordert Zeit und Übung vom SAP-Entwickler die objektorientierte Programmierung zu beherrschen und sinnvoll einzusetzen.
  • Die Gesamtmenge der Programmiertechniken steigt deutlich, da ein SAP-Entwickler nun sowohl prozedual als auch objektorientiert programmieren muss
  • Methoden sind nicht RFC-fähig. Muss Coding einer Klasse/Methode von außerhalb des aktuellen SAP-Systems aufgerufen werden, so muss ein RFC-fähiger Funktionsbaustein geschrieben werden, der dann die Klasse/Methode aufruft, damit das Coding der Klasse verwendet werden kann.
  • In Klassen können keine Dynpros angelegt werden. Sie müssen in Funktionsbausteinen oder Programmen gekapselt werden, die dann von einer Methode der Klasse aufgerufen wird.