¿Cuáles son las ventajas y desventajas de usar un paradigma de programación orientado a aspectos? [Cerrado]


10

Ok, aquí está la pregunta: ¿Cuáles son las ventajas y desventajas de usar un paradigma de programación orientado a aspectos?

Mis ventajas y desventajas hasta ahora:

Ventajas:

  • Complementa la orientación a objetos.
  • Modula las preocupaciones transversales que mejoran el mantenimiento del código y la comprensibilidad.

Desventaja:

  • No es el concepto más fácil de entender, no está tan bien documentado como OO
  • OO va lo suficientemente lejos en la separación de las preocupaciones ...

¿Alguien quiere desafiar a alguno de estos / agregar el suyo?

Muchas gracias j


1
Un montón de materiales de aprendizaje por ahí ya. Introducción a AOP: dotnetslackers.com/articles/net/… . Aprenda PostSharp (marco AOP) - programmersunlimited.wordpress.com/postsharp-principals
DustinDavis

Respuestas:


3

Desde el punto de vista de un programador cuyo lema es "Keep It Simple Stupid", evaluar el uso de tales modelos es peligroso. Por lo que intenta lograr, hace que un programa sea mucho más difícil de comprender y, en consecuencia, más fácil de romper.

El genio de la buena programación está en su simplicidad irónicamente. Los programas complejos pueden funcionar, pero son pesadillas cuando se trata de mantenimiento, y cuando considera que 2/3 del tiempo que un programador dedica a corregir errores en los programas, al final no vale la pena.


2

La distribución de la funcionalidad desde el lugar de operación aumenta la complejidad y los problemas de acción a distancia.

Considero que tales enfoques de diseño son algo en lo que uno debería evolucionar porque el sistema lo exige para una operación limpia, no diseñada al comienzo.


2

Ventajas adicionales (no todas)

  • Reutilización de clases y aspectos, gracias a la modularidad.
  • Coste de codificación reducido gracias a la modularidad y la reutilización.
  • Código más corto gracias a la capacidad de tener un aspecto con el código que de otro modo se implementaría (dispersaría) en varias clases
  • Capacidad para agregar comportamiento a una clase sin introducir código no relacionado con su responsabilidad principal
  • Capacidad para redefinir la semántica de métodos / clases sin dejar que las clases del cliente lo sepan

Desventajas

  • Sobrecarga en tiempo de ejecución cuando se utilizan algunas construcciones, por ejemplo, cflow

0

Desventaja: Soporte deficiente de la cadena de herramientas: - el depurador y el generador de perfiles pueden no conocer la "Programación Orientada a Aspectos" debido a esta razón pueden trabajar en código como si todos los aspectos hubieran sido reemplazados por código de procedimiento.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.