00:00
现在代理呢,优点是容易理解,使用挺方便的,实现呢比较简单。但是呢,他。也有一些缺点,那缺点是什么呢?我们来看一下。按照目前的简单的写法的话,那我们看。在一个淘宝。他现在是固定的是一个。这个厂家呀,这个关系是固定的,那假如说呢,你可能呢,有十个厂家。按照目前的代码的话,那这个淘宝。这样的类可能是需要有十个代理啊。可能需要十个代理。假如说你这呢,这个厂家还有一个。比方这个厂家呢,不是金盾了,是闪迪。啊,这是闪迪啊,闪迪。嗯。闪迪啊,闪迪厂家。
01:03
啊,闪迪,那你想啊,这个闪迪闪迪,那现在如果你想代理闪迪的这个U盘,那怎么办?你可能需要有个淘宝。这个类呢叫闪迪。然后这个闪迪的类中呢,它带这个目标呢,是USB闪迪这个factory是这样的。啊,然后呢,你这个调用才是这个闪迪的这个厂家来发这个U盘了。那你一个微商呢,你可能需要有一个闪级的微商。就是说目前来说的话,应该是这么写。啊,USB省级。我们的USB啊,闪迪factor吹啊,这个闪迪的了,就不是金神顿的啦。
02:00
陕级的,这是它的目标,目标类陕级的厂家。那你看通过我们刚才这个演示啊。当你的这个目标增加了,增加了啊,现在是两个了,然后你会发现我们这个目标,这个大乙类是不是也同步的增加了很多呀,相当于是两个厂家大里有几个,有四个是成倍的一种增加,那它的第一个缺点就是。我们看啊,现在代理在这它的缺点,缺点呢,第一个就是当你的这个目标类增多,就增加了这个代理类,它可能也需要成倍的增加。那增加也是说我们的代理类数量会过多,如果你成员中有100个品牌。
03:10
100个U盘的厂家,那按照现在的模式的话,那这个代理类可能就有200个,你可能就有400个了。会造成呢,你的类数量是非常非常多的。这第一个缺点就是说你的代理类数量可能会比较多,这是第一个缺点,除此之外还有什么呢?现在假如说我在这个接口中增加一个方法,那这个方法呢,就叫做。就在证明方法,那现在我增加了这个方法,会导致什么情况呢?我增加这个方法会导致什么呢?大家想一想会导致什么?我增加了一个接口的方法。增加一个方法。
04:02
增加一个,这之后你会发现所有实线。这个接口的类现在是不是都得改。你看他给你爆红了,为什么?因为这个接口中有一个方法没实现吗?告诉你。这个没实现,那同样闪迪这个也一样。他也会告诉你呢,这个方法没有实现,在这儿呢,同样大于类呢,都会有错,因为你这个方法新增加的没有实现。然后微商的同样的道理没有实现,那你会发现呢,当你在接口中增加一个方法的时候,会导致很多类都需要修改吧。那第二个它的缺点就是说。那就是说当你的接口中功能增加了啊,或者是修改了会影响。
05:09
啊,会影响到众多的。众多的这个实现类,那我们的厂家类,还有代理类都需要修改,影响的比较多啊,影响比较多,那你想你影响越多。那么你的工作量?就越大。修改的过程中出现错的几率就就越高。那因为你想啊,你有100个类需要改的话,它肯定比较麻烦嘛,改的越多越容易出错,你的工作量就会增加嘛,这就是静态代理它的缺点,当有众多的目标的时候,众多的代理的时候。
06:05
你用这个进价代理呢,他就会有一些麻烦。类数量多。多的话不好管理的,再一个是功能增加修改之后,它受到的影响类会比较多,所以以后你项目的这个维护呢,难度就高了呗。因为你想累那么多,一个一个改,多么费劲,费时又费力啊,这就是静态代理的一个缺点啊,它的一个缺点。如果你程序中就一两个类,那无所谓,我说的是当类多的时候啊,就是你那个目标多,它有100个。这个时候你修改功能。它影响面比较广。所有代理类这些都得改,都得改,类的数量多庞大。改的过程中容易出现问题啊。
07:02
而且类很多也不好管理啊,这是静态代理,在目标类多的时候,它会有一些问题啊。好,我把这个呢去掉,那这里能补充一点吧,我们说这个缺点这块啊,我们这么说。缺点是说,嗯。就说当你的项目中啊,你的目标类和代理类很多的时候。好,有以下的缺点。嗯。为的数量庞大,影响面呢,太多了。这是它的缺点啊。那有缺点的话,是不是应该有一个合适的方式能够改正这个缺点,让我们在有大量的目标这个情况下,也能让这个代理更加的容易一些吗?这就是第二种方式,叫动态代理。
08:03
动态代理呢,它是说当静态代理中你的这个目标类很多的时候,可以使用动态代理,它能避免静态代理中的那些缺点。好,那就说动态代理中,你这个目标类即使很多,那你的代理类数量数量可以很少。好,这是第一个,再有一个是当你修改了。修改了接口中的方法时,不会影响你的这些代理类。
09:08
哎,这是你的动态代理它的优点。一个是数量可以很少,第二个是你增加的功能,修改的接口对我们的目标类大乙类没有影响。这就是避免了静态代理中的一些缺点吧?这就是动态代理,那动态里什么概念呢?要把概念呢说一下啊,动态代理。
我来说两句