00:00
好,下面我们来看开一门新的课,这门课呢叫动态代理,是一个原理性的课,它是23种设计模式中的代理模式啊,代理模式,那么23种设计模式这我会给你们讲一个代理模式,讲spring的时候会给你们讲一个单利模式啊,我们在spring中还用到了工厂模式。啊,公照模式,那么这些我讲完以后,再去看老师提供给你的大话设计模式,再去琢磨这个设计模式的这种概念,啊,再去了解了解这些原理,那么就会更清晰一点,那么代理模式最终的目的,我们是目标对象不可访问。通过代理对象增强功能访问,这是我以前说的,你买方便面你不会跑到厂家去买,你是跑到超市去买或者网上去买,对不对,这个超市和网上其实就是个代理商中间商啊,我们就是得让他赚点差价,这样我们就更快捷的去买个方便面,不然你买个方便面,你坐好火车飞机到那个厂家,然后去了,人家今天还关门,你再买不上,你就气死算了啊,所以生活中和编码是一样的。
01:14
生活中有的这种情形,编码中一样的会遇到,就有些类,有些方法是不可直接被访问的,你要通过代理对象来进行增强功能的访问,比如说你当前这个项目都上线了。你的项目已然上线,那你的客户呢?又要改变需求,要增加功能,你不能把上线的项目pass,你不能把它停掉,他跑着还得跑,原先的功能还能有,你还要在原先的功能上扩展新的功能,这时候代理模式是极好的一种实现。那么我项目用着,然后通过代理的方式把新追加的功能追加上去。那么这样的话,他就在原有功能的基础上,有更强大的功能实现,就搞定了,这就是代理模式的意义啊,代理模式的意义,那么代理模式呢,又分为静态代理。
02:04
和动态代理、静态代理的要求,这个要求现在我说了你也不懂,我说完以后你马上转脸就忘了,他是目标对象、代理对象实现同一个业务接口,为什么要这么做?因为我要限定你们是一套业务。我的代理对象和那个目标对象干事同一趟活。嗯,你不能,比如说你你要联系那个明星的助理。你得联系这个助理,他是得跟明星能交接上,或者跟明星能对接上工作的这么一个助理,你去联系他,你不能说找个我找个什么保险的代理,什么车模,他们都是代理的功能呀,但是他代理的业务可不是跟明星打交道。所以你不能乱找这个代理,那我怎么能保证他们是同一套业务呢?上一个接口就搞定了啊,一个业务接口,那么代理对象中的核心功能。
03:02
由目标对象自己来完成。代理对象只是负责增强。你是一个代理,真正的功能还是由人家本尊来完成,你只是增强,啥意思?你只是跑到商店去买方便面。你商店只是负责进方便面,加点价钱卖方便面,你的商店不负责生产方便面。懂我的意思吗?你只是个代理,你只是把别人的东西拿过来在这卖,你加点钱,加点差价,你把它卖掉,你是赚这笔差价,但是你不负责生产方便面,还是得由厂家自己去生产,你代理只是把它卖掉,你并不负责生产方便面。这是最重要的一点,必须要整明白,静态代理,动态代理这个点都是一样的啊,那么动态代理,然后来看,这是我们要讲的下一个,第二个内容,就整个代理模式,俩内容,一个静态代理,一个动态代理,那么动态代理呢,就是在原先的静态代理的基础上做升级改造,让它功能更强大,更灵活,所有业务都可代理。
04:10
这是我的动态代理。动态代理分两套动态代理,一套叫JDK动态代理,一套叫cg lab,称之为是子类代理。两套代理的方式用的多的是JDK动态代理,Cg lab动态代理,了解就行,不是重点,不是重点。好,那么这就是我们的代理动态代理的这门课程中的主要的内容。
我来说两句