图片:
代理类的方法:
优缺点:
图片:
代理类的方法;
public class ProxyFactory { private Object target; public ProxyFactory(Object target) { this.target = target; } //给目标对象生成一个代理对象 public Object getProxyInstance() { // /* * public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) //1.ClassLoader loader :指定当前目标对象使用的类加载器,获取加载器的方法固定 //2.Class<?>[] interfaces:目标对象实现的接口类型,使用泛型方法确认类型 //3.InvocationHandler h :事情处理,执行目标对象的方法时,会触发事情处理器方法作为一个参数传入 */ return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub //反射调用目标方法 Object returnVal = method.invoke(target, args); return returnVal; } }); } }
在AOP编程中如何选择代理模式:
proxtyfacotry 方法: