AOP(面向切面)已经是一个比较成熟的编程技术了,网上已经可以找到很多的讲解,这里我就不多啰嗦了本文主要介绍AOP编程中比较好用的一些具体的框架和使用方法。
AOP在C#和java中的运用已经很多了,由于.Net和java有运行时和虚拟机(差不多就是一回事)的支持,可以再运行时获得类的各项信息,所以使得他们的AOP实现更加的容易。而在C++中由于没有运行时支持所以AOP编程就要困难一些。
首先,我们来了解一下.net中的AOP编程框架spring.net。
在.net中可以通过继承和对象代理的方式实现AOP,对象代理的方式比较常用,因为这种方式我们不需要对现有的代码进行修改,这里我们可以使用spring.net框架来使用AOP特性,具体的代码可以在 http://www.springframework.net/ 下载,里面包含有源代码,spring.net框架比较方便的是可以使用依赖注入,在配置文件中就可以配置使用什么拦截器来对方法进行切入。
在.Net和java中可以再运行时实现AOP,在C++中没有这样的运行时类型判断机制,所以目前C++使用的是在编译时将AOP代码编译进去得方法。在 http://www.aspectc.org/ 中可以下载到AspectC++编译器,其中有示例代码可以参考,在编译的时候添加 ag++编译器的编译动作进来就可以了。