应该说AOP不是一种技术,它的全称为面向方面的编程。是一种设计的思想。理论上任何一个语言都可以实现。AOP的目的就是将各个平行模块之间的耦合降到最低。
目前,很多框架和开源的项目中引入了IOC(控制逆转)容器和DI(依赖注入)容器,可以帮助你更容易的实现AOP。
相对于这些容器来说,事件和委托是一个教紧的耦合关系(因为双方需要更多了解对方的实现)。
但是,相对于耦合性来说,性能也是一个项目中需要很多考虑的方面。因此,如果你没有很好的理解以上方法的优缺点之前(比如我),最好还是不要使用这些抽象的概念。对于项目的顺利进行没有任何好处。
---------------
更新:
IOC & DI也是一种设计思想,而IOC容器&DI容器就是这种思想的具体实现了。因此,我上面采用了IOC容器和DI容器的说法。