首页 >> 大全

【代理机制完整版】

2023-07-22 大全 31 作者:考证青年

缺点:

代理类和被代理类需要实现相同的接口,代码大量重复,增加了代码维护的复杂度。

代理对象只服务于一种类型的对象,如果要服务于多种类型的对象,则需要多个代理类。

动态代理:

JDK代理机制:它使用JDK提供的代理类,并且基于接口。

接口:

接口实现类:

JDK的代理类:

测试类:

结果如下:

由结果可知:proxy的类型是$

JDK代理机制在使用时需要注意两个问题:

①被代理的对象必须是至少一个接口的实现类对象。

②得到的代理对象,应该是某一个接口的实现类对象。

**CGLIB代理机制:**不必基于接口,其本质是以被代理对象的类型作为基类,产生的派生类对象。

首先创建一个不被final修饰的类:

CGLIB代理机制:

测试类:

结果如下:

由结果可知:

代理对象可以修改被代理类中成员的值

注意:

①如果被代理的类是用final修饰的,那么则不能使用CGLIB代理机制,因为被代理的类不能派生出子类!

②如果被代理的类中有用修饰的方法,则代理对象不能调用该方法。

此后代理机制的应用场合:

①RMI,远程方法调用,

②中的Aop,面向切面编程。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了