AOP最终要实现的效果是方法拦截,比如有三个方法A()、B()、C(),这三个方法是独立的;但我要实现这样的效果:在调用A的过程也会调用B和C方法,这就是方法拦截。
如图,就是说对A方法进行拦截。根据这个拦截,我们展示下伪代码过程:
原来的代码:
function void A()
{
A的代码部分;
}
function void B()
{
B的代码部分;
}
function void C()
{
C的代码部分;
}
通过AOP实现后最后代码变成:
function A()
{
B的代码部分;
A的代码部分;
C的代码部分;
}
AOP在DOTNET中比较流行有两种实现:动态代理和静态织入。