Erfolgreiche Dependency Injection mit ABAP

ABAP OO flexibler

Christian Buschmann


Mit ABAP Objects (OO) hat die SAP AG die objektorientierte Programmierung in SAP-Systemen ermöglicht. Mittlerweile ist OO als Programmiermodell für Neu- und Weiterentwicklungen durch SAP gesetzt. Damit hat der Programmierer die Möglichkeit, die aus OO bekannten Patterns und Programmierprinzipien in seinen ABAP-Applikationen zu verwenden. Das Vorgehen zur Erstellung von OO-Programmen unterscheidet sich allerdings von prozeduralen Anwendungen. Mithilfe der Kapselung von Programmeinheiten in Klassen lassen sich mehrere Instanzen erzeugen, die unterschiedliche Implementierungen und inhaltliche Abbildungen enthalten. Für das Erzeugen und Verwalten von Instanzen gibt es diverse Herangehensweisen. Ein ungünstiges Vorgehen wäre es, die abhängigen Instanzen innerhalb der Fachklasse selbst zu erstellen. Dies wirkt sich nachteilig auf die Flexibilität, Testbarkeit und Wiederverwendbarkeit der Klassen aus. Folgender Artikel erläutert als Alternative das Pattern der Dependency Injection (DI) im Umfeld der ABAP-OO-Entwicklung. Es wird zunächst das Pattern und im Anschluss ein Ansatz zur pragmatischen Umsetzung dargestellt.

Weitere Informationen zu ABAP OOUrsprünglich ist ABAP eine Sprache für die prozedurale Programmierung, in der die Anwendungsentwicklung mithilfe von Funktionsbausteinen und Formroutinen erfolgt. Mit dem Erscheinen des SAP-Releases 6.4 wurde ABAP um die Eigenschaften einer objektorientierten Sprache erweitert. Die SAP AG entwickelte ABAP Objects kontinuierlich weiter und mittlerweile wird das Programmiermodell in den ABAP-Programmierrichtlinien von SAP für Neuentwicklungen und Weiterentwicklungen empfohlen. Auch durch SAP HANA und die neuen Möglichkeiten in der Anwendungsentwicklung verliert der Application Server ABAP nicht an Bedeutung. Gerade im Zusammenwirken mit SAP HANA hat SAP Möglichkeiten geschaffen, diese neue Technologie effizient mit ABAP zu verbinden.

Das Dependency Injection Pattern

Bei der Dependency Injection [1] geht es um die Entkopplung von abhängigen Programmteilen und des Kontrollflusses bei OO-Anwendungen. Folgendes Beispiel verdeutlicht das Konzept: Eine Klasse, die eine Berechnung durchführt, soll das Ergebnis einer beliebigen Weiterverarbeitung zuführen. Diese kann beispielsweise die Ablage des Ergebnisses in einer Datenbank oder der Aufruf eines Web Service sein. Berechnung und Weiterverarbeitung sind in verschiedenen Klassen abgebildet. Im Rahmen der Dependency Injection wird die Instanz der Weiterverarbeitung nicht durch die...

Erfolgreiche Dependency Injection mit ABAP

ABAP OO flexibler

Christian Buschmann


Mit ABAP Objects (OO) hat die SAP AG die objektorientierte Programmierung in SAP-Systemen ermöglicht. Mittlerweile ist OO als Programmiermodell für Neu- und Weiterentwicklungen durch SAP gesetzt. Damit hat der Programmierer die Möglichkeit, die aus OO bekannten Patterns und Programmierprinzipien in seinen ABAP-Applikationen zu verwenden. Das Vorgehen zur Erstellung von OO-Programmen unterscheidet sich allerdings von prozeduralen Anwendungen. Mithilfe der Kapselung von Programmeinheiten in Klassen lassen sich mehrere Instanzen erzeugen, die unterschiedliche Implementierungen und inhaltliche Abbildungen enthalten. Für das Erzeugen und Verwalten von Instanzen gibt es diverse Herangehensweisen. Ein ungünstiges Vorgehen wäre es, die abhängigen Instanzen innerhalb der Fachklasse selbst zu erstellen. Dies wirkt sich nachteilig auf die Flexibilität, Testbarkeit und Wiederverwendbarkeit der Klassen aus. Folgender Artikel erläutert als Alternative das Pattern der Dependency Injection (DI) im Umfeld der ABAP-OO-Entwicklung. Es wird zunächst das Pattern und im Anschluss ein Ansatz zur pragmatischen Umsetzung dargestellt.

Weitere Informationen zu ABAP OOUrsprünglich ist ABAP eine Sprache für die prozedurale Programmierung, in der die Anwendungsentwicklung mithilfe von Funktionsbausteinen und Formroutinen erfolgt. Mit dem Erscheinen des SAP-Releases 6.4 wurde ABAP um die Eigenschaften einer objektorientierten Sprache erweitert. Die SAP AG entwickelte ABAP Objects kontinuierlich weiter und mittlerweile wird das Programmiermodell in den ABAP-Programmierrichtlinien von SAP für Neuentwicklungen und Weiterentwicklungen empfohlen. Auch durch SAP HANA und die neuen Möglichkeiten in der Anwendungsentwicklung verliert der Application Server ABAP nicht an Bedeutung. Gerade im Zusammenwirken mit SAP HANA hat SAP Möglichkeiten geschaffen, diese neue Technologie effizient mit ABAP zu verbinden.

Das Dependency Injection Pattern

Bei der Dependency Injection [1] geht es um die Entkopplung von abhängigen Programmteilen und des Kontrollflusses bei OO-Anwendungen. Folgendes Beispiel verdeutlicht das Konzept: Eine Klasse, die eine Berechnung durchführt, soll das Ergebnis einer beliebigen Weiterverarbeitung zuführen. Diese kann beispielsweise die Ablage des Ergebnisses in einer Datenbank oder der Aufruf eines Web Service sein. Berechnung und Weiterverarbeitung sind in verschiedenen Klassen abgebildet. Im Rahmen der Dependency Injection wird die Instanz der Weiterverarbeitung nicht durch die...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang