使用面向方面的编程范例的优点和缺点是什么?


10

好了,这是一个问题:使用面向方面的编程范例的优缺点是什么?

到目前为止,我的优点和缺点:

优点:

  • 补充面向对象。
  • 模块化横切关注点,提高代码的可维护性和可理解性。

坏处:

  • 不是最容易掌握的概念-没有OO记录得很好
  • OO在关注点分离方面走得足够远...

任何人都想挑战其中的任何一个/添加自己的吗?

非常感谢,J


1
已经有大量的学习资料。AOP简介-dotnetslackers.com/articles/net/…。学习PostSharp(AOP框架) - programmersunlimited.wordpress.com/postsharp-principals
DustinDavis

Answers:


3

从一个座右铭是“保持简单愚蠢”的程序员的角度来看,评估此类模型的使用非常危险。对于它试图完成的工作,它使程序难以理解,因此更容易破坏。

具有讽刺意味的是,良好编程的天才在于它的简单性。复杂的程序可能会起作用,但在维护方面却是噩梦,当您认为程序员花2/3的时间来解决程序错误时,最终并没有回报。


2

从操作位置分配功能会增加复杂性和远距离行动问题。

我认为这样的设计方法应该成为一种方法,因为系统需要它进行干净的操作,而不是在一开始就设计。


2

其他优势(并非全部)

  • 由于模块化,类和方面的重用
  • 模块化和重用,降低了编码成本
  • 短代码,这是因为它具有将代码的某些方面与原本可以实现(分散)到多个类中的能力
  • 能够向类中添加行为而无需在其中引入与其主要职责无关的代码
  • 能够重新定义方法/类的语义而无需让客户端类知道它的能力

缺点

  • 使用某些构造时的运行时开销,例如cflow

0

缺点:工具链支持差:-调试器和探查器可能不了解“面向方面的编程”,因为这个原因,它们可能在代码上工作,就好像所有方面都已被过程代码所取代。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.