________________Java代理

我是自己理解的,可能会有好多问题。

一  、

//创建一个需要实现display功能的 接口
package com.chinasoft.proxy;
public interface 功能接口 {
void display();
}

二、

//实现类实现display的方法
package com.chinasoft.proxy;
public class 实现功能 implements 功能接口 {
@Override
public void display() {
// TODO Auto-generated method stub
System.out.println("啦啦啦___这就是爱___啦啦啦");
}
}

三、

//代理功能 
package com.chinasoft.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.LogManager;

public class 代理功能 implements InvocationHandler {
private Object target;

public 代理功能(Object target) {
super();
this.target = target;
}

public Object getproxy(Class<?> c) {
return Proxy.newProxyInstance(c.getClassLoader(), target.getClass().getInterfaces(), this);

}

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub

System.out.println("------------------before------------------");
Object result=method.invoke(target, args);
System.out.println("-------------------after------------------");

return result;
}

}

四、

//测试
package com.chinasoft.proxy;

public class TestIV {

public static void main(String[] args) {
// TODO Auto-generated method stub
实现功能 i = new 实现功能();//创建功能的实例
代理功能 iv = new 代理功能(i);// 实例化InvocationHandler
功能接口 proxy = (功能接口) iv.getproxy(功能接口.class);//实例化代理
proxy.display();
}

}

 

五、//测试结果

------------------before------------------
啦啦啦___这就是爱___啦啦啦
-------------------after------------------

 

posted @ 2017-11-02 18:58  637  阅读(79)  评论(0编辑  收藏  举报