社区
Java SE
帖子详情
为什么使用动态代理的对象必须实现一个或多个接口
fran_maomao
2015-10-16 04:32:24
初学动态代理,不是很清楚为什么使用动态代理的对象必须实现一个或多个接口?搜了一些解答说实现接口可以定义接口规范,不是很理解,有没有大神可以解释一下~ 谢谢
...全文
1210
3
打赏
收藏
为什么使用动态代理的对象必须实现一个或多个接口
初学动态代理,不是很清楚为什么使用动态代理的对象必须实现一个或多个接口?搜了一些解答说实现接口可以定义接口规范,不是很理解,有没有大神可以解释一下~ 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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是没有要求实现代理,但是也要求继承父类的。本质上是一样的,就是要求有一个超类(或者接口),用来代理目标类。 从广义的实现接口来讲,动态代理就是使用超类代理目标类。
JAVA_API1.6文档(中文)
javax.swing.plaf.multi 提供了组合两个或
多个
外观的用户界面
对象
。 javax.swing.plaf.synth Synth 是
一个
可更换皮肤 (skinnable) 的外观,在其中可委托所有绘制。 javax.swing.table 提供用于处理 javax.swing....
Java
动态代理
为什么要求
必须
实现
顶级
接口
前言 如果你学习过spring,那么你一定接触和
使用
过Aop。...java原生的
动态代理
所代理的
对象
必须
要
实现
一个
顶级
接口
,而cglib的
动态代理
则不需要这样的
接口
。在很长一段时间里很迷惑为什么java的动态代...
为什么JDK
动态代理
只能代理
接口
,不能直接代理类?CGlib为什么可以代理类?
众所周知,Spring会基于代理的类去动态的选择
使用
JDK创建代理
对象
还是CGLIB(当然也可以配置全都
使用
CGlib),这取决于被代理的
对象
是类还是
接口
。 java
动态代理
是利用反射机制生成
一个
实现
代理
接口
的匿名类,在...
JDK
动态代理
为什么
必须
要基于
接口
?
前几天的时候,交流群里的小伙伴抛出了
一个
问题,为什么JDK的
动态代理
一定要基于
接口
实现
呢? 好的安排,其实要想弄懂这个问题还是需要一些关于代理和反射的底层知识的,我们今天就盘一盘这个问题,走你~
一个
简单的...
JDK
动态代理
为什么
必须
要基于
接口
目录1. 前言2.
一个
简单的例子2.1. 定义
接口
2.2.
接口
实现
类2.3. 自定义 `Handler`2.4....在分析原因之前,我们先完整的看一下
实现
JDK
动态代理
需要几个步骤,首先需要定义
一个
接口
2.1. 定义
接口
public in
Java SE
62,614
社区成员
307,319
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章