首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 动态代理的一些思考和疑问:(疑问还没解决)
【标  题】:动态代理的一些思考和疑问:(疑问还没解决)
【关键字】:
【来  源】:http://www.blogjava.net/itspy/archive/2006/11/13/80842.html

动态代理的一些思考和疑问:(疑问还没解决)

动态代理的一些思考和疑问:(疑问还没解决)
在Java中有一个动态代理技术,主要通过Proxy,InvocationHandler和Method,这三个类(接口)来实现.但是有如下一个问题不太明白,希望高手解惑.

我查看了几个例子,它们实现InvocationHandler这个接口时,都通过构造函数传递进去了,实际被代理的对象,然后在实现的方法中通过method.invoke(obj,args);obj为构造函数传递进来的对象.

比如下面的例子:
public class Handler implements InvocationHandler {

?MethodInterface delegate;

?public Handler(MethodInterface delegate) {
??this.delegate = delegate;
?}

?public Object invoke(Object proxy, Method method, Object[] args)
???throws Throwable {
??if (method.getName().equals("say")) {
???System.out.print("I have get it");
??}
??return method.invoke(this.delegate, args);?
?}

}

函数invoke()传递进去的第一个参数proxy就没有被使用到,但同样实现了动态代理的效果,后面参考文献中的例子也是的,难道是这第一个参数就是多余的,如果是这样的话,就是Sun设置失误了 ^__^.

sun的文档是这样解释这个参数的:proxy - the proxy instance that the method was invoked on.但这个参数有什么用的,如果不传递他进来,会有什么不便呢.


有没有人能明白这是怎么回事,或者是写个示例代码,讲讲这个第一个参数是干嘛用的?

?

?

注:附两个完整的动态代理的例子
http://blog.csdn.net/hsyj_0001/archive/2006/04/02/647488.aspx
http://www.java2s.com/Code/Java/Development-Class/Demonstratesadynamicproxy.htm

j2ee web service开发(四) header与handle:【上一篇】
[原创]国内大部分的USBKey通过B/S方式(CAPICOM)产生数字签名的严重安全漏洞:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 再看BPEL
  • 利用P2P技术实现点对点聊天
  • 欢迎加入 China SaaS Mail Discussions Group
  • Jsp&Servelet 学习笔记-对一个Servlet创建多个Mapping
  • ASP+VML+DB实现投票统计项目
  • 免费获得NetBeans worldTour CD的方法!
  • DivX Browser Plug-In Beta 1
  • ASP+数据库操作例子
  • 应用开发设计阶段应该注意的UDF函数依赖关系
  • 我为什么反对计算机奥林匹克竞赛
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.