java:代理模式带来了什么好处


我们先聊下什么是代理,生活中我们经常会到超市去买东西。超市是从生产厂家拿货放到超市进行销售,而你不需要和生产厂家有接触就能买到生产厂家的东西。 简单的来说就是通过中间人去获取某个东西、或者做某件事。我们管这种思想叫做代理,英文proxy。


java:代理模式带来了什么好处

这种思想是面向对象编程中比较常见的思想,在java中我们管这种思想叫做代理模式


java:代理模式带来了什么好处


代理可以分为两种,一种是
静态代理:只能静态地代理某些类或者某些方法,比如代理创建对象的方式做代理,一般不推荐使用这种代理功能性比较弱。第二种是动态代理:动态代理又可以分成jdk动态代理CGLIB动态代理

cglib动态代理,可以理解为为我们的目标对象,生成.class字节码。cglib代理的实现方式有asm和Javassist,虽然cglib动态代理简化了开发,但是做得并不够极致。所以有了jdk的动态代理。

jdk动态代理,jdk的动态代理是通过反射进行实现的,通过newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)进行对象的代理,直接代理在内存当中,我们通过观察可以看到反射的第二个参数是接口,也就是说jdk代理只能代理到接口里的方法,对于类自己的实现表示无能为力。而cglib却可以解决这个问题。

所以两种动态代理的方式,各有优缺点。这个也是springAOP中为什么会用到两种动态代理,因为单个的代理有局限性。

展开阅读全文

页面更新:2024-06-06

标签:英文   优缺点   局限性   字节   静态   反射   生产厂家   接口   好处   对象   东西   思想   超市   模式   方式

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top