01 enero 2005

Programación orientada a aspectos

La programación orientada a aspectos básicamente consiste en una herramienta (que se añade al compilador) que nos permite, durante la ejecución del programa, capturar la llamada a los métodos de nuestro programa, de forma que podemos hacer algo antes o después de que se ejecuten, incluso podemos hacer que el método no se llame o devuelva una cosa distinta.

Típicamente se puede usar para cosas del siguiente estilo:
  • Hacer una traza de nuestro programa. Podemos capturar la llamada a los métodos e ir escribiendo en pantalla, según se van llamando, "llamado al método tal con tales parámetros".
  • Persistencia en base de datos. Podemos capturar los métodos del tipo "tomaDato()" para hacer que antes o después de que se ejecute, escribir ese dato en base de datos.
  • Privilegios. Capturando determinados métodos y en función del usuario que somos, podemos permitir la ejecución normal del método o denegarla.

El proceso normalmente consiste en hacer nuestro programa de una forma normal, sin preocuparnos de este tipo de temas (trazas, persistencia, privilegios, etc). Luego hacer una serie de clases especiales a las que la herramienta llamará cada vez que se ejecute uno de los métodos que digamos. En esas clases especiales hacemos la traza, persistencia o lo que sea.

En un fichero xml se dice qué métodos se quieren capturar y a cuales de nuestras clases especiales hay que llamar.

Luego se compila todo con unas opciones especiales de la herramienta de programación orientada a aspectos y se ejecuta el programa.

Todavía no he hecho ninguna prueba sobre el tema, pero todo se andará.

No hay comentarios: