动态代理设计模式,JDK动态代理必须有接口,cglib动态代理,不需要接口但依赖于继承体系。

一、代理模式:

在这里插入图片描述

在这里插入图片描述

二、静态代理模式

在这里插入图片描述

静态代理介绍:

1、代理类是自己手工实现的,自己创建一个java类,表示代理类。
2、同时你所要代理的目标类是确定的(目标类中的方法,例如mybatis中要动态代理对象,UserMapper接口是确定的,如果不用mybatis框架进行代理,那么我们自己写,那么每多一个UserMapper接口,就要重复多写一个代理类去进行实现。)
在这里插入图片描述
代理类完成的功能:
1.目标类中方法的调用,A客户就是淘宝用户,间接的通过代理对象(淘宝商家用户B),去向C金士顿厂家购买了U盘,A为什么不能直接访问C能,因为买的少,厂家不卖,A就找一个中间代理商购买。
2.功能进行增强,U盘出厂原价是65元,但是到用户手中却是85元,当然这个是double类型,可以换成别的类型例如原来集合中只有1个元素,通过代理增强可以返回一个集合中又2个元素的集合,一定程度上进行了增强,当然我们实际上代理功能并不是这么简单的数值相加或者集合中元素个数的增减。

在这里插入图片描述
上图中,如果UsbSell接口种每多一个方法,那么我的实现类都要进行变动,
或者现在又来了一个电脑接口ComputerSell,那么我就要根据不同的接口重新在写很多实现类·。这样虽然写起来简单,但是我不能动态的进行变动,这就是静态代理对象。

三、动态代理模式

在这里插入图片描述
动态代理创建对象,这届把创建类文件,java编译为class这一步干掉了。

四、动态代理理论总结:

在这里插入图片描述

五、动态代理的实现

在这里插入图片描述
JDK动态代理:
1、反射,Method类,
在这里插入图片描述
其中target是要传入的是对象,要执行那个对象的invoke方法。,第二参数是参数列表,可变参数。
2、jdk动态代理的实现
1、
在这里插入图片描述
2、在这里插入图片描述
3、
在这里插入图片描述

1、动态代理实现步骤小案例步骤:

在这里插入图片描述
代理对象执行流程:
在这里插入图片描述

2、动态代理能干什么呢?,面向切面编程。

在这里插入图片描述

3、其他解释

cglib介绍:原理是继承,在某些方面效率高于jdk

在这里插入图片描述

链接: B站动力节点JDK动态代理。.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值