标签:nts obj system his 开始 .com 产生 OLE 通过
静代理模式
真实角色
代理角色(自定义)
两个角色实现同一接口
例:线程Thread
// 产生一个代理对象
Thread proxy = new Thread(new Runnable() {
public void run() {}
});
// 调用代理对象的方法
proxy.start();
动态代理:
基于接口:jdk自带的动态代理
java.lang.reflect.Proxy类提供用于创建动态代理类和实例的静态方法
java.lang.reflect.InvocationHandler接口
public class ProxyInvocationHandler implements InvocationHandler {
//真实对象
private Object target;
public ProxyInvocationHandler(Object target) {
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("代理方法开始.....");
Object result = method.invoke(target, args);
System.out.println("代理方法结束.....");
return result;
}
}
// 测试方法
public void test() {
Role realRole = new RealRole();
ProxyInvocationHandler handler = new ProxyInvocationHandler(realRole);
// 生成代理类
Role proxy = (Role) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(),realRole.getClass().getInterfaces(),handler);
// 实际上会调用 handler 的 invoke 方法
proxy.sing();
}
标签:nts obj system his 开始 .com 产生 OLE 通过
原文地址:https://www.cnblogs.com/mabaoqing/p/10691574.html