温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
啊呃,那其实到现在为止的话,我们这个动态代理呢,就给大家掌握的差不多了啊,那么接下来的话呢,大家就要好好的把它去呃写一写,然后呢,好好的去理解理解能明白吧,OK,呃,那我还是要再说一个什么事呢,就是说一下如何让我们这个动态代理类呢更加的动态一点,那我就拿上我们一开始写的这个来给大家去讲解哈,如果让这个动态在里面更加的动态一点呢?就是首先第一个这个位置你不要去定义具体的类型,你定义成具体的类型,那么你的目标对目标对象是不是只能是这个类型的,嗯,那也就意味着我只能为这个类型的对象创建代理的,如果说你把它定义成object的,那么这个位置也是object的,这里面你不要出现具体的类型,能明白什么意思吧?不管是你的原本对象也好,或者是我的代理对象也好,你全部都使用object价,这样的话呢,我写好了这个代理过程,我可以为任何对象进行代理,明白了吗?我可以为任何对象进行代理,你能想明白吗?对吧?所以说呢,我们只需要把这。
01:01
这位置改一改,就是不要让它出现具体的类型,这个位置呢,也不要出现具体的类型,你就定义成一个object就可以了,明白吧,哎,这样的话呢,我们就可以为任意类型进行一个什么动态代理,能听懂了吧?啊,就是我们更加灵活一点的这个动态代理,好吧,啊把这个呢再来给大家去稍微的强调一下啊你就行了,OK,呃,那么正后大家下去以后呢,你要去测试什么呢?我在课堂上呢,只测试了一个addd方法,那么大家呢,可以去测试一下别的方法,像那个剩下三个方法,其实呢,你每调一个方法,它都有一个代理的过程的,对吧,它的问你的每一个方法都能生成代理。好,这个能理解了吧,OK,但是呢,我现在问大家一个问题,假如说我在我这个具体的实现类里面,你看好了哈,在我的这个实现类里面,我自己写的一个方法。啊,比如说AAA,这是我自己写的一个方法,那么请问动态代理能代理它吗?为什么代理不了,因为接口里面有没有他没有好,那么现在我问大家,如果说我既想把这些方法做代理,又想为这个方法做代理,还能使用基于接口的代理吗?能不能不行了,那我们就能使用什么了,基于进程的方式来代理。
02:20
对吧,为什么基于继承呢?基于继承的话,就是我把它就是把我们的目标对象呢当成一个父类,把代理对象呢当成一个子类,让他去继承目标对象,这样的话,你目标对象里面有什么方法,我在代理对象里面就有什么方法,是不是继承嘛,你有啥我不就有啥了吗?是不是,所以说呢,基于接口就是能为接口里面所有的方法做代理,而基于继承呢,能为你代理对象里面,稍微能为你目标对象里面所有的方法都做代理。当然了,如果你要写成翻有的,那我继承不了,那我也没办法能明白这个意思了吧,所以说为什么有分这个基于接口的,基于这个进程的呢?就是因为你代理的这个呃,方向是不一样的,基于接口的话,就是接口里面的方法,我呢是给你做代理,如果你自己定义的,那我们是代理不了的,但是基于进程的方式有什么好处呢?就是只要你在这个类里面定义的,我正常能继承下去的方法,我都能帮你做一个代理,现在能理解了吧,OK,什么是基于接口的,什么是机遇啊,继承的啊,最后呢,把这个给大家去简单的说一说啊,好吧,啊,那我们就说这么多了啊,这个我就注释掉了。
我来说两句