日期:2014-05-20 浏览次数:20717 次
// 1、定义接口 class interface1{} class interface2{} class interface3{} // 2、创建接口的实现类 //对应接口的实现类,被代理的对象 class ImplClass implements interface1,inteface2,interface3{ } // 3、创建具体的InvocationHandler xxxHandler implements InvocationHandler{ private ImplClass implClass; //注入ImplClass的实例 invoke(0bject Proxy,Method method,Object[] args){ //dosomething method.inovke(implClass,args); } } // 4、根据具体的接口和InvocationHandler生成代理类 ImplClass proxy0 = (ImplClass)Proxy.newInstance(classLoader,interfaces,hanlder); // 5、调用代理的方法 proxy0.doSomething();
//生成的proxy实例继承Proxy并实现被代理的各个接口 class proxy0 extends Proxy implements interface1,inteface2,interface3{ //这个handler引用 4、创建代理时传如handler实例 private InvocationHandler handler //实现各个interface中的方法 methodXX(object args){ // 调用传入的handler的invoke方法,传入代理类实例和具体的要调用的被代理方法以及参数 handler.invoke(this,methodXX,args); } }