/**
* 动态代理
* 实现步骤:
* 1,建立目标类对象:作为主要执行内容;如:ArrayList garget= new ArrayList();
* 2,建立通告对象: 作为运行目标时需添加的功能 ;如: Advice advice = new Advice();
* 3,定义一个获得某目标类的代理的方法:
* private static Object getProxy(final Object target,final Advice advice)//为什么要用final修饰??
* 该方法有两个参数:目标标类对象,通告类(某类)对象,并返回一个指定接口(target所实现的接口)的代理类实例,
* 如:Object proxy = newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h);
return proxy;
* 4, 定义一个目标类的接口的引用如:Collection proxy=getProxy(target,advice);
* 5,调用该代理类所代理目标类拥有的方法(会自动调用添加的功能。
* 注意:目标类必有是实现某个或某些接口
*/ |