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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小漠 中级黑马   /  2014-9-24 10:39  /  1583 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小漠 于 2014-9-25 11:42 编辑




如上图,代理类的作用就是在目标类的上下加一些代码,直接在目标类上下加不就可以了,为什么非要用代理
代理的作用是什么?不用拿张老师视频的例子给我讲,那个我懂,我想问的是在Java中,代理有什么作用?为什么要用

评分

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

查看全部评分

10 个回复

倒序浏览
这代理我看得老晕.....我的理解 就是有什么事情交给代理做,而目标类不用每次都改,有时候我们要在自己目标类的基础上加点东西的
回复 使用道具 举报
如果要把一个接口的所有子类的方法都增加一个功能 你不是要把所有子类的方法都改了
回复 使用道具 举报
谢建平 发表于 2014-9-24 17:21
这代理我看得老晕.....我的理解 就是有什么事情交给代理做,而目标类不用每次都改,有时候我们要在自己目标 ...

继承不是也可以实现这个功能~~
回复 使用道具 举报
个人理解就是为了解决的问题:当你需要对某个程序修改或添加新功能时,但是你没有源码,只是知道一些基本信息,这时就需要把目标程序框架COPY过来,但是具体执行还是要目标来执行,但是在COPY过来的这个框架中,我们可以进行修改、添加等操作!这应该是代理的最初需要把!

评分

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

查看全部评分

回复 使用道具 举报
比如要将程序交给客户前先要自己测试一下自己的代码吧,这时候代理就派上用场了。
回复 使用道具 举报
楼主的意思大概是能不麻烦何必麻烦呢。问题是现实设计项目中,人家才不会傻傻地给你源码,给你个目标类的Class文件,你就只能通过代理类去添加一些你需要在测试时候需要的系统功能。Proxy类是所有由它特供的静态方法创建的动态代理类的公共的父类,而且在设计上,就规定了必须要用统一的接口类去实现,酱紫的做法也是无可厚非的,可以达到统一访问,不能实现接口的类只能通过CGLIB库了创建子类去实现代理了。
具体可以参考一下地址:
1、http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/index.html
2、http://zhidao.baidu.com/link?url=CCbT-pi5cWne3dVnTlGamoxyYejpBemu--dsVw62vhyyqs1Gtu5vmKnmtoPN_bEQi_nb2axjv4bn_QZtkKfYPK

评分

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

查看全部评分

回复 使用道具 举报
简而言之,就是为了在不修改源码的前提下,为类加入一些新的功能。--------即给类加个包装。
回复 使用道具 举报
小漠 中级黑马 2014-9-25 09:34:08
9#
⋛⋌⋚JEEP 发表于 2014-9-24 23:43
楼主的意思大概是能不麻烦何必麻烦呢。问题是现实设计项目中,人家才不会傻傻地给你源码,给你个目标类的Cl ...

嗯嗯,明白了,非常感谢~~谢谢帮我解决问题
回复 使用道具 举报
回复的都是大神啊!学习了
回复 使用道具 举报
就是要在目标类的上下加点东西,又不能改变目标类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马