00:00
好,我们现在开始继续往下来,下面来看一下呢,我们JDK中啊,怎么来实现这个代理机制呢?往下来我们来看JDK。它的动态代理的实现,这里呢用的是反射包中的三个类和接口比这三个。我把这三个功能呢给大家都说一下,那第三个首先我们来说第一个,第一个呢,它叫做引VO handle了,接口第一个啊是invoc handler,接口是这个,它是一个接口啊,是一个接口。啊,是个接口,在这个接口中有一个方法,接口中就一个方法,就一个方法叫做invoke,你注意啊,这个VO只是说。
01:01
接口中有这么一个方法,名字叫而已啊叫。这个work它表达什么意思呢?Work这个方法,它是用来表示你代理对象要执行的功能代码。功能代码,也就是说你的代理类。要完成的功能写在invoke方法之中,写在方法之中就行了,也就是说,你的代理类要完成的功能就写在。就写在这个引work方法中,方法中就完事了,就说你代理要干什么,就想也没不中就完事了。
02:00
那我们的代理类一般要干什么事情呢?我们来看。代理类要干什么事情?拿我们之前的静态代理来说的话,我们看。淘宝。他是个大类。那这个大眼类它要干什么呢,我们看。这是你的。代理类在筛方法中的功能实现。它的功能实现呢,就两大块儿,第一大块呢,就是目标的调用。这是factory,是目标类吧?目标类的调用,比如说目标方法的执行,这是第一件事情。第一件事情。那就是说我们代理类完成的功能啊,完成的功能。第一点呢,那就是要调用目标方法。调用目标方法啊,这是执行目标方法和功能,这是第一个,你具体要干什么,他得有。
03:09
那第二个干什么呢?第二个就是这。加了价格。给了这个优惠券吧,那这一部分呢,我们加在一块叫功能的增强啊,功能增强主要就这两大块儿,一块儿是目标方法调用,第二块呢,就是我们的功能增强,也就是说在目标方法的调用后,调用时。我们增加呢,额外的功能,就是你的代理类要完成功能,那以前呢,我们的代码呢,是直接写在这个,在这个里边,这有个shell在这呢来写这个功能,现在就是说呢,我们要把这一段代码。这一段代码啊,要把它移到哪呢?移到这个隐墨课里边去就行了,在这个隐墨后中来写我们代理类要干的功能,一个就是调用目标方法,还有就是功能的增强,这是第一个接口叫引kitchen handle了。
04:16
这个接口呢,换成中文呢,它叫做调用处理器。它叫调用处理器啊,Invocation handler,它叫做调用处理器,下面呢,我们来看一下这个接口的源代码。双击shift in vocation handler。Handle了。我们来找这个class,就是它反射包中的。它呢是一个反射包中的一个接口interface,这个接口呢,它里边呢,就有一个方法,这个方法叫VO,这是它的原型,我把这个方法原型呢拷贝下来,放到我们这里边,这是方法原型。
05:07
肉丝这个就不要了,我们说这个方法的原型啊。方法的原型,原型里边呢有三个参数,这三个参数我们来说参数第一个object proxy,这个是呢,GDK创建的代理对象。无需赋值啊,无需赋值这个操作,这个参数不需要你管理,它都是JDK自动来完成的,不需要你管理啊,第二个参数呢,Method。好,Method,这个method是什么呢?它实际上就是你的目标方法,就是目标类中的这个方法。Method是你目标类中的方法,目标类中的方法啊。
06:03
这个参数也不需要你复制,是JDK来提供的,JDK来提供method的对象啊。嗯。好,这是method,还有第三个呢,是object X,这个object它指的是什么呢?是你的这个目标类中方法的参数,方法的参数,也就说他俩是哎,一起的,这是那个方法,这是方法的那个参数。它实际上对应就是我们成语中的哪一块呢?就是刚才我们给大家写的就是这一块,你看这是那个对象,这是对应的参数吧,实际上就是它一个对象。啊,一个是参数只是这一部分啊。
07:03
好,那么这个method的啊,应该这么说啊,这个method代表着方法,它对应就是这个就是这个啊是method,然后这个李四对应的是我们刚才说的这个object X对应是他。Method是方法,然后这是方法的参数,执行时那个参数。那这个参数值呢,也不需要你付这题可以提供的啊,这就可以提供的。啊,也不需要你管,也就是说这三个参数都是JDK帮你付的,不需要你人为的参与,它不需要啊不需要啊,不需要人员参与。这是我们的三个参数。因为它是一个接口嘛,所以你用的时候,你应该是不是写一个类去实现这个接口啊,怎么用它呢,怎么用。那就是说你要做的是说,那就是第一步我们要创建一个类,创建类呢,我们去实现这个接口invocation安得了,这是第一步,然后第二步我们要重写这个VO这个方法,把原先。
08:20
啊,原来静态代理中代理类。要完成的功能啊,我们要写在荧幕中,写在这就行了,写在这这就可以了。那我们这个invocation handle了,这个接口它叫做调用处理器,它要表明是你要干什么,你的代理要干什么啊,你这么理解invocation handler接口。这写一句话啊,他就是表示你的这个代理要干什么啊,要干什么。
09:04
把你的代理要干的东西,要干的工作写在这个引之中就完事了,这就是我们的第一个接口invo handler,它的一个说明,这就完事了啊,是第一个,你要干什么写在invo里边就行了,这是第一个接口。
我来说两句