Buscar
Social
Ofertas laborales ES
« Google crea un servicio de hosting de proyectos libres | Main | Update 8 de Java 5 »
lunes
ago212006

Propuesta para incluir closures en Java

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?

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.