JAVA-代理(Proxy)设计模式的个人理解

代理模式的三种
1.静态代理
2.动态代理(也叫JDK代理)
3.Cglib代理

代理模式概念:

 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展。

代理模式个人理解:

代理模式,<代理>顾名思义暂时代替某某担任某些责任。比如,明星的经纪人。当明星有一个需求比如:从上海出发到北京。那么经纪人就会安排明星:从上海
出发坐飞机到北京。 这里面的《坐飞机》就是经纪人的功能了。

用一个简单的java代码来理解一下代理模式(https://www.cnblogs.com/boboxing/p/8126046.html)
在这里插入图片描述

一 静态代理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
静态代理个人理解:

代理类和目标类都实现了同一个接口,代理类在没有修改目标类代码的同时,也进行了方法拓展。
但是如果代理类太多,要新增一个方法将会很难维护的~

二 动态代理(JDK代理)
动态代理也叫做:JDK代理,接口代理。
代理对象不需要实现接口,但是目标对象一定要实现接口,否则不能用动态代理
代理类所在包:java.lang.reflect.Proxy
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

除了上面这种方式,还可以运用工厂模式进行动态代理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

个人理解:
动态代理不必像静态代理那样实现很多代理类,这一点倒是方便了。但是记得被代理的对象一定要实现接口!

三 Cglib代理(子类代理)
静态代理和动态代理有一个共同点,就是目标对象一定是实现了一个接口。
但是Cglib就不必了,目标对象只是一个单独的对象,并没有实现任何的接口,这个时候就可以使用以目标对象子类的方式类实现代理。
原理:在内存中构建一个子类对象从而实现对目标对象功能的扩展.

—具体实现待写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值