PROGRAMACIÓN ORIENTADA A ASPECTOS PARTE II

PROGRAMACIÓN ORIENTADA A ASPECTOS

En el desarrollo de software, las funciones que abarcan varios puntos dentro de una aplicación se denominan preocupaciones transversales. Por lo general, estas preocupaciones se encuentran conceptualmente separadas de la lógica de negocio de la aplicación.

La Programación orientada a aspectos (AOP) entra en acción a la hora de separar estas preocupaciones transversales de la lógica de negocio.

¿Qué es la Programación orientada a aspectos?

Como se ha indicado con anterioridad, una preocupación transversal puede definirse como cualquier funcionalidad que afecta a varios puntos de una aplicación. Por ejemplo, la seguridad es una preocupación transversal, ya que varios métodos de una aplicación pueden contar con normas de seguridad aplicados a estos.

La AOP permite definir la funcionalidad común en una ubicación y cómo y dónde se va a aplicar, de forma declarativa, sin necesidad de modificar la clase a la que se ve a aplicar esta nueva característica.

Las preocupaciones transversales pueden modularizarse en clases especiales llamadas aspectos. Esto ofrece dos ventajas:

1.- La lógica de cada preocupación se encuentra ahora en una única ubicación, en lugar de encontrarse repartida por todo el código.

2.- Los módulos de servicio son más claros, ya que solo van a contener el código de su preocupación principal, mientras que las transversales se han transferido a los aspectos.

Terminología AOP

Los aspectos suelen definirse en términos de consejo, puntos de corte y puntos de cruce.

Consejo

Los aspectos tienen un propósito, es decir, un trabajo para el que se han creado. En términos de AOP, al propósito de un aspecto se le denomina consejo.

Los consejos definen tanto el qué como el cuándo de un aspecto. Además de describir el trabajo que un aspecto debe llevar a cabo, los consejos deben responder a la pregunta de cuándo deben llevarlo a cabo.

1.- Antes: La funcionalidad del consejo tiene lugar antes de que el método se invoque.

2.- Después: La funcionalidad del consejo tiene lugar después de que finalice el método, con independencia del resultado.

3.- Después de la devolución. La funcionalidad del consejo tiene lugar después de que el método se complete con éxito.

4.- Después de la generación: La funcionalidad del consejo tiene lugar después de que el método genere un error.

5.- Alrededor: El consejo encapsula el método, lo que proporciona cierta funcionalidad antes y después del método invocado.

Puntos de cruce

Un punto de cruce es aquel punto de la ejecución de la aplicación al que puede conectarse un aspecto.

Son los puntos en los que el código de los aspectos puede insertarse en el flujo normal de la aplicación para añadir un nuevo comportamiento.

Puntos de corte

Un aspecto no tiene que aconsejar a todos los puntos de cruce de una aplicación. Los puntos de corte ayudan a reducir los puntos de cruce aconsejados por un aspecto.

Si el consejo define el qué y el cuándo de los aspectos, los puntos de corte definen el dónde.

Un aspecto combina los consejos y los puntos de corte. De forma conjunto, definen todo lo que lo que debe hacerse sobre un aspecto: qué hacer, dónde hacerlo y cuándo debe hacerse.

 

No hay comentarios:

Publicar un comentario

Contenido desarrollo de software - Arquitectura Software

ENUM en JAVA