一、什麼是代理模式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;
}
}
看到上面的代碼相信你們也多多少少明白些。實現動態代理應該實現接口。