分析代理类的作用与原理
已经写好了一个类,里面有一个方法
class X{
void sayHello(){
System.out.println();
}
}
要在这个类上面增加一些辅助功能,但是没有类的源代码,怎么办?
现在做一个X的代理
XProxy
{
void sayHello()
{
startTime;
X.sayHello();
send time;
}
}
代理类的方法必须和目标方法一样。
原来客户端需要调用Target,现在不调用Target,调用Proxy, 代理调用Target,Proxy和目标实现相同的接口,在客户端编程时,不调用目标,,也不调用代理,而是直接调用接口。
在代理里面一定要调用目标的对应方法,但是在调用这个方法的时候在前面或者后面需要增加一下动能。
采用工程模式和配置文件进行管理。
交叉业务,不同的模块有相同的事物,这样的业务叫做交叉业务。例如,安全,日志等功能贯穿到很多的模块中。
methodA(){ methodA(){ methodA(){
-------------------------------------------------------切面
... ... .....
--------