AspectJ
Im Seminar “Ausgewählte Themen Software” entschied sich unser Dozent Herr Knabe für die Aspektorientiert Programmierung mit AspectJ 5. Was bedeutet Aspektorientierte Programmierung? Die Objektorientierte Programmierung ist noch gar nicht soo alt und nun gibt es schon wieder das nächste Programmierkonzept? Nein!
Es ist zwar ein Programmierkonzept aber eines was man als Ergänzung zur Objektorientierung verstehen darf. Man versucht die fachlichen Teile des Quellcodes von den notwendigen technischen Teilen zu trennen. Es ist ja so, dass man bei manch komplexen Methoden nicht mehr sofort erkennt welche Fachlogik sich dahinter verbirgt, weil Code für Logging, Persistenz oder ähnliches die Methoden aufblähen.
An dieser Stelle setzt AspectJ an. Man versucht die technischen Anliegen von den fachlichen zu trennen, indem man die technischen Concerns in Aspekte auslagert und sie erst danach “einwebt”. Das heißt der technische Code wird rausgenommen und zu einem späteren Zeitpunkt wieder an die Stelle geschrieben. Nur hat man den Vorteil, dass die Methode deutlich übersichtlicher ist.
Dadurch landet der notwendige technische Code auch in einem Package und widersetzt sich nicht weiter dem Prinzip der Modularisierung, indem er alle Module des Projekts durchzieht.
Nachteil bei der Anwendung von Aspekte ist, dass die Methoden zwar einfacher und übersichtlicher aber sich ein neuer Entwickler unter Umständen wundert warum etwas passiert, das nicht im Quellcode steht. Dokumentation spielt bei der Nutzung von Aspekte also eine zentrale Rolle!
Nun versteht ihr was hinter AspectJ steckt. Das Konzept ist in meinen Augen sehr gut, nur leider finde ich die Umsetzung nicht so gelungen. Die Quellcodeeinsparung erreicht man nur in sehr wenigen trivialen Fällen und ansonsten verstreut man seinen Code auf zusätzliche Klassen, die eine Einarbeitung deutlich erschweren.
Als Download gibt es mein Klausurvorbereitungsskript, das hauptsächlich auf dem Buch von Oliver Böhm “Aspektorientierte Programmierung mit AspectJ5″ basiert.




