AOP 切面思想

一、什么是AOP切面思想

 

什么是AOP?引用百度百科:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。实现AOP主要由两种方式,

 

一种是编译时静态织入,优点是效率高,缺点是缺乏灵活性,.net下postsharp为代表者(好像是付费了。。)。

另一种方式是动态代理,优点是灵活性强,但是会影响部分效率,动态为目标类型创建代理,通过代理调用实现拦截。

 

AOP能做什么,常见的用例是事务处理、日志记录等等。

常见的AOP都是配合在Ioc的基础上进行操作,上边咱们讲了Autofac这个简单强大的Ioc框架,下面就讲讲Autofac怎么实现AOP。Autofac的AOP是通过Castle(也是一个容器)项目的核心部分实现的,名为Autofac.Extras.DynamicProxy,顾名思义,其实现方式为动态代理。当然AOP并不一定要和依赖注入在一起使用,自身也可以单独使用。

 

AOP 切面思想

 

 

AOP 切面思想