ABCABE 2013-02-02 14:49
浏览 213
已采纳

Java:关于动态代理

public Object invoke(Object proxy,Method method,Object[] args) throws Throwable
{
System.out.println("调用"+method.toString()+"之前");
Object o = method.invoke(proxyobj,args);
System.out.println("调用"+method.toString()+"之后");
return o;
}
这样执行原代理的时候,都会由动态代理在该方法执行之前和之后各输出一句话,但是从这个例子看来,代理对象所增加的处理是一样的,实际的开发中或者框架中是用if else 或switch来判断方法名来判断具体增加哪些操作码?

:)

  • 写回答

1条回答 默认 最新

  • diaozhanming 2013-02-02 20:36
    关注

    这个的确是一个good question,很难有一个特定的答案。在一个项目中代理的使用,基本都是在一个通用的功能上,就是所谓的切面,切入点的概念,这些时候这些方法都有共性。就目前的程序设计中,大量的使用annotation,在动态代理中基本都是捕捉annotation来进行这些操作。如果真的只有某个方法需要进行如何楼主代码中的判断,这个时候代理就没有任何优势了,完全可以再程序代码中直接进行操作。不过我的这个还是解释不了一些细节问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习残差模块模型
  • ¥20 两个不同Subnet的点对点连接
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)