日期:2014-05-18  浏览次数:20764 次

[求助] 关于面向切面编程的缺点
最近在看Spring时接触到 面向切面编程 的概念,各种书的论坛上都讲的是 面向切面编程 的优点,但我感觉是技术总会有些不足,我只是一个初学者,体会不到,希望经验丰富的过来人指点一二。
Spring

------解决方案--------------------
其实为什么你看到的只有优点呢?因为它确实“没有”缺点。
关键问题是AOP并不是一种通用技术,而是解决某些特定问题的方案,它跟诸如OOP这些通用技术并不互斥,甚至它自身都是不可能单独存在的。所以对于AOP而言,只有“适用”与“不适用”的概念,而没有“缺点”的概念。道理很简单,不适用的地方你也不会用它的啊,既然你只需要在适用的场合用,何来“缺点”?
------解决方案--------------------
aop的出现是解决oop解决不了某些问题的。
------解决方案--------------------
Spring AOP(动态):通过代理程序运行时织入
优点:简单,易用
缺点:性能略低,仅适用于方法调用,必须在Spring容器

Aspect J(静态):通过修改程序的字节码完成织入
优点:性能好,功能强大,无需Spring容器
缺点:修改需要重新编译,要引入Aspect J的编译器/织入器,复杂

别人总结的!
参考下!

------解决方案--------------------
这怎么感觉这么像面试题呢。
我经常面试的时候被问到这道题,
很实在的回答一下的话,就说有时候为了规范而是用AOP,但是为了这个一个单独的无共同部分的地方而单独制作一个切面有点费工夫