lunes
ago212006
Propuesta para incluir closures en Java
lunes, agosto 21, 2006 at 10:25AM
Gilad Bracha, Neal Gafter, James Gosling y Peter von der Ahe han escrito una propuesta para introducir closures en Java. Una clousure es una función anónima (que no tiene nombre) que se define en el cuerpo de otra función y que puede acceder a las variables locales de dicha función. Lo más parecido que tenemos en Java son las clases anónimas internas, aunque éstas sólo pueden acceder a las variables finales del método en el cual se definen.
Las clausures son una característica muy apreciada por los usuarios de ciertos lenguajes (como Smalltalk) y se han puesto bastante de moda en la actualidad gracias a Ruby.
Una de las ventajas de contar con esta construcción en Java sería la posibilidad de simplificar la gestión de eventos realizandola de un modo muy similar a C#: Actualmente para gestionar un evento, aunque sea uno tremendamente sencillo, tenemos que implementar una interfaz y por tanto crear una clase. En muchas ocasiones lo único que me importa de esa clase es un método donde se realiza la gestión del evento. Como la definición del método está predeterminada por la interfaz para pasarle información al método muchas veces acaba recurriendo a variables de la clase que gestiona el evento que se inicializan en el constructor.
Empleando closures sería posible simplemente escribir el código que gestiona el evento y punto, al estilo de los delegates de C#. Este modelo de gestión de eventos sería más sencillo que el actual, si bien menos potente.
¿Qué otras utilidades creéis que pueden tener las closures? ¿Os parece una buena idea incluirlas en Java?
Las clausures son una característica muy apreciada por los usuarios de ciertos lenguajes (como Smalltalk) y se han puesto bastante de moda en la actualidad gracias a Ruby.
Una de las ventajas de contar con esta construcción en Java sería la posibilidad de simplificar la gestión de eventos realizandola de un modo muy similar a C#: Actualmente para gestionar un evento, aunque sea uno tremendamente sencillo, tenemos que implementar una interfaz y por tanto crear una clase. En muchas ocasiones lo único que me importa de esa clase es un método donde se realiza la gestión del evento. Como la definición del método está predeterminada por la interfaz para pasarle información al método muchas veces acaba recurriendo a variables de la clase que gestiona el evento que se inicializan en el constructor.
Empleando closures sería posible simplemente escribir el código que gestiona el evento y punto, al estilo de los delegates de C#. Este modelo de gestión de eventos sería más sencillo que el actual, si bien menos potente.
¿Qué otras utilidades creéis que pueden tener las closures? ¿Os parece una buena idea incluirlas en Java?
in
j2se
j2se 
Reader Comments