La programación orientada a aspectos (POA) es un paradigma de programación que basa su filosofía en tratar las obligaciones transversales de nuestros programas como módulos separados (aspectos) para lograr una correcta separación de responsabilidades.
2. Introducción
La Programación Orientada a Aspectos o POA
es un paradigma de programación
relativamente reciente cuya intención es
permitir una adecuada modularización de las
aplicaciones y posibilitar una mejor separación
de responsabilidades (Obligación o
correspondencia de hacer algo).
3. Características
del POA
Con la programación orientada a objetos (POO)
cambiamos nuestra forma de pensar para abstraer
problemas de una forma más simbólica para el
humano, ahora los objetos eran los que manipulaban
los datos, y las clases son las que nos ofrecen sus
funcionalidades. Con la POA tomamos un enfoque un
tanto parecido al de la POO pero con la sutil diferencia
que la POA nos dice que si alguna funcionalidad de
nuestro código se repite en diferentes módulos, lo
mejor sería extraerla del programa principal y hacer de
ella un aspecto en lugar de crear jerarquías
complicadas.
4. Ejemplo POA
El fuerte de la POA se obtiene al combinarla con otros
paradigmas de programación, así compensamos las
deficiencias de uno con las fortalezas de otro.
5. Conceptos del
POA
Los siguientes 3 conceptos son los más importantes de la
programación orientada a aspectos general:
Aspecto (aspect): funcionalidad transversal (se repetirá
a lo largo del sistema) que será implementada de
forma separada. Es el concepto principal de este
paradigma puesto que representa la sección de código
que se separó del resto del programa.
Punto de corte (pointcut): es el que se encarga de
especificar mediante expresiones regulares (regex) en
qué parte del programa se debe de insertar un aspecto.
Consejo (advice): es el código que ejecutará el aspecto
(cuerpo del algoritmo).
6. Conclusiones
Provee una fuerte herramienta para modularizar
programas sin importar lo extensos y complicados que
estos sean.
Vuelve más limpio el código fuente.
Permite agilizar el proceso de creación de programas
cuando muchas personas están involucradas en el
mismo proyecto, y/o están en lugares geográficos
diferentes.
Puede mezclarse con cualquier otro paradigma de
programación.
Permite la comunicación entre diferentes lenguajes de
programación que comparten aspectos.
7. Recomendacio
nes
Tener en cuenta que la programación orientada a
aspectos sufre de un anti patrón de diseño acciones a
distancia.
Saber que vuelve difícil de comprender el código
puesto que el programa hace tareas que no están en los
métodos que deberían estar.
Determinar como y cuando es optimo utilizar el POA ya
que es un poco complicado identificar cuándo es
óptimo utilizar POA de forma eficiente.