一、什么是代理模式java
代理模式至关为一种对象或者类提供一个中间的访问者,若是一个用户不想访问或者不能直接引用某个对象。那么代理就会为咱们作不少处理。web
二、代理对象所需的角色:ide
接口: 代理模式是实现了JAVA中的多态。this
下面我用JAVA为你们进行比较详细的介绍:spa
package cn.proxy;代理
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;orm
//1:实现代理执行句柄
public class Myproxy implements InvocationHandler {
// 二、必需要实现invoke方法,只要是执行代理类上的任意方法(不包含getClass)
// 就会先执行这个方法
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object returnValue = null;
returnValue = method.invoke(src, args);
return returnValue; }对象
// 三、声明被代理的对象
private Object src;接口
// 四、在构造器方法里面接收这个对象
public Myproxy(Object object) {
this.src = object;
}开发
// 五、开发一个静态的方法返回这个被代理的对象的代理
public static Object getMyproxy(Object object) {
// 六、建立代理对象
参数:Myproxy.class.getClassLoader(),类装载器装载机的代理类。
object.getClass()类的接口。多态
代理的对象必须实现 InvocationHandler这个接口的方法
Object proxyobj = Proxy.newProxyInstance(
Myproxy.class.getClassLoader(), object.getClass()
.getInterfaces(), new Myproxy(object));
return proxyobj;
}
}
看到上面的代码相信你们也多多少少明白些。实现动态代理应该实现接口。