Article,

Modularisierung von Crosscutting Concerns mit Closures - Closures im Querschnitt

.
Java Magazin, (2007)

Abstract

Closures - ein funktionales Programmierkonstrukt, bekannt aus: + Common Lisp + Groovy + Haskell + Lua + ML + Perl + Ruby + Scala + Scheme + Smalltalk Closures sollen per JSR einen Weg in Java 7 finden. Der Artikel zeigt wie im zukünftigen Java Querschnittsaspekte über Closures implementiert werden können. Es wird ein Vergleich zwischen Aspektorientierter Programmierung (AspektJ) und Closures am Beispiel der Messung von Methodenausführungszeiten vorgenommen. Definition von Closures: "Closures, die auf deutsch auch als Funktionsabschlüsse bezeichnet werden, sind laut Wikipedia 'ein semantisches Konzept, das eine Funktion zusammen mit einer Umgebung bezeichnet. Wenn aufgerufen, kann die Funktion Elemente der Umgebung referenzieren, die für ihre Berechnung notwendig sind'. Diese 'Elemente der Umgebung' sind zum Beispiel Variablen, die außerhalb der Closure definiert sind. Der strengen Definition nach müssen zudem auch andere Anweisungen in einer Closure dieselbe Bedeutung haben, als seien nur Teil des umgebenden Kontextes. Ein return sollte zum Beispiel von der umgebenden Methode zurückkehren, nicht nur von der Closure. Analog muss this (bzw. self, je nach Sprache) in einer Closure auf dasselbe Objekt zeigen, auf das es auch ausserhalb der Closure verweist, insbesondere jedoch nicht auf eine Art Funktionsobjekt."

Tags

Users

  • @funthomas424242

Comments and Reviews