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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lichao 中级黑马   /  2013-12-20 20:36  /  1439 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看张老师的视频,看了好几遍还是不能很好地总结:什么是代理、静态代理、动态代理?他们的区别是啥呀?都有啥优缺点呀?
求大神指教。。。最好是术语加实例。。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

2 个回复

倒序浏览
静态的代理即写出代理类和目标类,代理类和目标类实现同一个接口,客户端程序可以通过配置文件的修改来决定调用代理类还是目标类,代理类除了有目标类的代码以为,还添加了有其他功能的代码,比如目标代码运行时间的时长

动态代理的需求就产生了,我们写了许多个目标类,同时还要写许多个代理类,为了提高工作效率,JVM可以在运行期间动态的生成出类的字节码,这种动态生成的类往往被用作代理类,即动态代理类。举个例子,通过调用Proxy类中的方法,我们可以实现Collection类,然后再传入ArrayList类,然后再指定你要修改ArrayList中的方法。然后在调用代理类的这个方法的时候,除了要实施目标中的方法的代码,还要实施你添加的代码。

如果不这样做的话,你就要复制粘贴一份ArrayList类的代码,然后将复制后的文件名字设置成ProxyArrayList,然后在你想要修改的方法中添加代码。这样做挺没有效率的
回复 使用道具 举报
如果不这样做的话,你就要复制粘贴一份ArrayList类的代码   :handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马