00:00
啊来,我们接着往后说啊啊,那刚才呢,我们啊,把我们提出的这个需求啊已经做完了,然后呢,我们在这个基础之上呢,给大家分析了一下我们现在存在的这么些个问题啊,这个大家应该都听懂了吧,OK,知道这个问题了是吧?好,那接下来呢,我们就来想一想,呃,那我这个功能我应该怎么去做,诶,我就能把这个问题给解决了呢?啊,或者说我怎么能把这个功能做到更加的完美一点啊,更加的什么好一点啊,那么其实如果你想去解决这个问题,那么我们就要用到我们的动态代理这样的一个技术了,了解到吧,哎,就要使用这个动态代理这样的一个技术了,OK,呃,那首先呢,我们再来说一下这个动态代理的一个原理啊呃,什么样的动态代理呢?就是说一下这个代理设计模式的这个原理啊,那么提到这个动态代理,那么其实还有一个叫做什么静态代理啊,那么不管是动态也好,或者是。
01:00
卡也好,它都属于我们这个代理设计模式啊,也是我们这个23种设计模式里面的其中一种啊,OK,那我们看一下吧,呃,它的原理呢,就是使用一个代理对象,将原本的这个对象呢,给它包装起来,然后呢,使用这个代理对象呢,去取代我们的原始对象,任何对原始对象的调用呢,都要通过代理啊,也就意味着代理能决定是否以及何时将这个方法的调用呢,转到我们的原始对象上面。啊,这句话啊,这个听起来还是不好理解的吧,好理解吗?啊,不好理解,这就是什么呀,这就叫什么概念。是吧,啊概念你想想,我们这个从小到大每天都在背概念,记概念,学习的过程中是不是都是这个样子的。对不对啊,概念这个东西,其实我觉得大家觉得这个中国人最擅长做什么事,最擅长就是总结概念对吧,而且我告诉你总结的你越看不懂,你越听不懂,嗯,这个概念好是吧?啊,这就是我们所谓的专家啊,对吧,一般专家说的话我们都听不懂是不是啊,所以说呢,呃,概念这个东西的话,如果我们能理解,那当然是好的,如果说理解不了,那我们就要借助于我们啊一些例子呢,来去什么对比的去把它理解一下啊啊那么首先呢,大家要从这句话里面呢去要啊总结出一些什么关键点来啊,就是我们即将会出现一个代理对象,然后呢,还有一个是原始对象啊,就是两个东西,那么这两个东西的话,我们呃会把它叫成什么呀,代理对象呢,就叫代理对象,而那个原本的那个对象,我们可以把它叫成目标对象啊,所以说呢,我一会儿再讲的时候啊,有可能我会说成目标对象。
02:56
啊,有可能会说成这个原来的这个对象,但是你要知道我说的就是诶同一个东西啊,这是我们要从这里面能提炼出来的,而且呢,大家要注意,我们有了代理对象以后呢,我会把这个原来的对象呢,给它替换掉啊,就是我会把它取代掉,取代掉以后呢,我就可以用我这个原始对象去帮你完成一些功能啊,稍微用我的什么呀,代理对象呢,去帮你完成一些功能,但是呢,最终啊,就是你本身原来对象的那些功能还得由原来的对象去完成。
03:28
代理呢,只能是增强你,但是呢,不能完全取代你。明白这个意思吗?我只能去增强你就是我可以在你原本基原本这个功能基础之上呢,帮你去做一些增强,我可以帮你去扩展出一些东西来,但是你原本的功能我是不可能去取代你的这个标准啊,就这个大家一定要把它记住的原则,这是原则啊,不能动的,听懂了吧?OK,那我们来给大家去举一些这个生活中的例子呢,让大家去理解理解啊嗯,生活中有代理吗?太多了是吧?啊没见过的话,你现在打开你的朋友圈看看是吧?啊,朋友圈打开全都是代理啊,啊,什么代理啊,现在的微商是吧?啊,这不做代理吗?啊,你们有研究过这个这个东西吗?大家应该每个人都知道是吧?身边有朋友做这个的吗?啊,那太多了,我告诉你啊,我身边都是做做这个的啊,副业是吧,白天是写代码的,晚上就是啊,卖衣服的啊,卖裤子的,卖鞋的啊,卖包的啊,卖这个小孩的纸尿裤的是吧啊。
04:33
居然发现我身边居然出现了卖小孩的这个东西的是吧,然后我就感觉我也应该要考虑这个事了是吧?好,所以说我们就拿这个代理来给大家去说啊,你看像我那个现在比较火的这个微商是吧?啊,其实他本身就是一个代理,那他是怎么代理的呢?他帮你卖东西。对吧,他在朋友圈里面天天给你发发发各种什么消息是吧,让你能看得到,但是呢,如果说你真要去跟他买这个东西的时候,是他把这个东西卖给你的吗?一般是很少会有他帮你卖的啊,就是嗯,最终的就相相相当于这个样子的哈,有一个总的这个经销商啊,就是这个真正的一个卖家,能理解吧,有一个真正的卖家,他是有一个功能是卖东西的,能明白吧,但是呢,呃,因为你只是一个经销商,一个卖家,所以说呢,你对这个东西的这个宣传上面来讲,你肯定是抵不上那么多人帮你宣传的,对吧,那么就出现了这个代这种方式,就说诶你可以去找代理啊,比如说这是一个代理,然后呢,你来代理,我代理他做什么事呢?你可以在我这个卖东西的这个基础之上的去扩展扩展对吧,比如说你可以帮我去做宣传对吧?啊,你来帮我做宣传,然后呢,呃,你还可以在我原本卖东西的基础之上呢,去做一些额外的扩展,比如说你可以想听你自。
05:56
递了一些什么营销手段是吧,然后呢,帮助我把这个东西卖出去,那么具体怎么做了,那就是你的事儿了啊,但是最终我要保证的是什么呀,你在卖东西的时候,肯定是我原本的这个卖家把东西卖到那个什么买家手里面的,而不是这个代理,代理他只是做了一个什么推广的这样的一个作用。
06:16
对吧?看似我是找了这个代理买的东西,但其实呢,最终发货的,最终卖给你这个东西的那个人是原本的卖家,能听懂吧?能理解这个意思吗?OK,那我们就把这个类比到我们现在这个程序里面,你就把这个原本的卖家当成是什么目标对象,而把这个代理呢,就当成我们的代理对象,你其实直接跟代理对象去打交道,但实质上最终完成卖东西这个功能的是我们的目标对象。那可能有多少了,那你说这个代理对象存在的目的是什么呀?我还得找他去买。如果没有代理对象,你能找得到他吗?不能吗?不能吧,对吧,所以说呢,代理对象做了什么事呢?就是在你原本的这个基础之上,我帮你去扩展出一些功能来,我去增强你,这就是我们代理的一个目的。
07:09
现在能理解了吗?啊,诶大家差不多了啊,OK,好,那么我们再来接着往后说,呃,这个地方呢,有一个图啊,就是我们围绕着我们刚刚的那个日志需求呢,来给大家去讲的,你看本身呢,我就有一个计算器,他能负责加减乘除的一些功能,但是如果你想进入日志,那么他是干不了的,他不擅长做这个事儿,那我就可以去找一个代理,通过一个日志代理呢,诶来对我什么原本的这个对象来做一个代理,那么他就可以在我加减乘除的基础之上帮我完成日志这个功能的一个实现,但是最终的话呢,我们还得去完成这个加减乘除,由谁来完成呢?你还得找到原本的这个目标对象去完成这个功能,同样的道理,你比如说你还得做验证,那么我也可以让验证呢,也去代理你,然后呢,让这个验证的这个代理呢,帮你扩展出来一个验证的功能,而最终的加减乘除功能还得找原本的这个计算器去完成。
08:07
那解都这个意思了吧,OK,所以说我们首先呢,要把代理的这个思想先给看明白了,知道了这个思想以后,我们才能去写代码,如果说你这个思想你都理解不了,那么我们在写代码的时候,其实你也就凑个热闹,看个乐呵是吧,你也不知道我在干嘛,反正我是把代码写完了,对不对,那么首先的话,我们就要把这个代理的这个思想先把他明白。差不多了吧,好OK,就是这个样子的啊,那行吧,那我们说完了这个动态代理的一个基本的原理啊,然后呢,呃,暂时的话呢,大家就先理解这么多,呃,接下来的话呢,我们会通过代码的形式来去实现,那么我们到时候呢,再结合上代码呢,再结合上我们具体的一个业务,大家呢,再去理解一下我们程序中的这个代理,他是怎么一回事。明白了吧,OK,好,这是我们动态代理的一个原理啊。
我来说两句