社区
Java SE
帖子详情
为什么使用动态代理的对象必须实现一个或多个接口
fran_maomao
2015-10-16 04:32:24
初学动态代理,不是很清楚为什么使用动态代理的对象必须实现一个或多个接口?搜了一些解答说实现接口可以定义接口规范,不是很理解,有没有大神可以解释一下~ 谢谢
...全文
1378
3
打赏
收藏
为什么使用动态代理的对象必须实现一个或多个接口
初学动态代理,不是很清楚为什么使用动态代理的对象必须实现一个或多个接口?搜了一些解答说实现接口可以定义接口规范,不是很理解,有没有大神可以解释一下~ 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjxtju
2015-10-17
打赏
举报
回复
headfirst 设计模式
http://pan.baidu.com/share/link?shareid=2797796125&uk=839776675&fid=1862987674
第一章12页。
代理是你的类内部组合了其他类,代理了这个其他类的功能。如果要动态,那么你组合的这个类就不能背严格限定。如果不使用接口你在组合的时候必定是这样的语句
ProxyedClass pc;
这限定了你的代理的类为ProxyedClass,不能动态代理多个类。如果抽象出接口。被代理的方法写在接口内部。那么
InterfaceOfProxyedClass pc;语句在实例化的时候可能为ProxyedClass1 ProxyedClass2 ProxyedClass3等等,只要他们实现了InterfaceOfProxyedClass,并且可以通过setter动态切换。
具体看了完整第一章应该就理解了。
dracularking
2015-10-17
打赏
举报
回复
只是jdk的动态代理要求实现接口,cglib没有强制,直接通过继承目标类实现
jsjszg
2015-10-17
打赏
举报
回复
从狭义的实现接口,即implements interface来讲, 单从动态代理本身来讲,没要求实现接口。只是jdk的动态代理机制要求实现接口。虽然cglib是没有要求实现代理,但是也要求继承父类的。本质上是一样的,就是要求有一个超类(或者接口),用来代理目标类。 从广义的实现接口来讲,动态代理就是使用超类代理目标类。
微信生态下数据分析算法的公共利益属性研究.docx
微信生态下数据分析算法的公共利益属性研究.docx
Hytool is a matlab toolbox for the interpretation of hydraul
Hytool is a matlab toolbox for the interpretation of hydraulic tests in wells. The toolbox contains analytical solutions used to describe groundwater flow around wells, and functions for importing, displaying, and fitting a model to the data..zip
Bochs_为了更好地学习操作系统,我参考《操作系统真象还原》这本书学习操作系统,会从引导程序开始逐渐搭建
一个
简易的操作
Bochs_为了更好地学习操作系统,我参考《操作系统真象还原》这本书学习操作系统,会从引导程序开始逐渐搭建
一个
简易的操作系统内核,这份代码运行在 Bochs 虚拟机上.zip
山东大学_sdu计算机学院操作系统实验.zip
山东大学_sdu计算机学院操作系统实验.zip
基于python
实现
的MES生产管理系统的自动化测试.zip
基于python
实现
的MES生产管理系统的自动化测试
Java SE
62,631
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章