A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马亚冲 黑马帝   /  2011-9-28 02:11  /  1701 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

动态代理分开怎么理解,也就是说:
1、怎么理解动态?哪几方面的动态?
2、怎么理解代理?
3、都有哪些地方用到动态代理?

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

1 个回复

倒序浏览
黑马网友  发表于 2011-9-28 11:33:38
沙发
我的理解,不知道是不是准确地,你参考下。动态代理就是在运行时根据被代理类(目标类)生成代理类(要用到反射的知识),实际开发过程中是利用被代理类的字节码来生成代理类的,所以代理类必须知道自己需要实现被代理类的哪些方法(getProxyClass(ClassLoader loader, Class<?>... interfaces)方法中的interfaces参数就是这些需要实现的接口的字节码),但是这里的代理类还不能实例化,因为代理类的方法最终调用的还是被代理类的方法(看Proxy的构造函数就知道还要InvocationHandler
的实例对象),只要我们实现了InvocationHandler
这个接口就能实例化代理类,也就创建了代理类。InvocationHandler
接口的实例对象实际上就是代理类的方法具体实现,包括被代理类方法以外的一些附加方法(例如计算程序运行时间啊等等)。
最后总结你的问题:
1,动态:就是在运行时产生;(哪几个方面的动态我就不知道怎么回答了)
2,代理:通过第三方来访问本可以直接访问的目标;
3,作用:在不修改源代码的情况下,添加一些用监测和检测程序运行的方法。
   再次强调,这是我的理解,不知道准不准确,只能参考下。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马