00:00
好,我们现在呢开始上课,我们继续呢,来讲这个代理的一个实现啊讲代理。上午呢,我们介绍一下代理这个概念,接着呢我们来看一下呢。代理它的作用,也就是说使用代理的作用。代理模式的作用,这种代理的方式它有什么用呢?第一个我们叫做功能增强。所以功能增强呢,就是。你这个家长啊,要去找学校要入学,那你最终呢,能够实现入学的目的,但同时呢,你找这个中介的时候,这个中介得收费用啊。那么这个收的费用就是在你原来的要干的之呃,干的这个事情之上,额外付出的这些内容,额外付出的,我们把这个呢叫功能增强,也就是你原来是要进行这个入学的。
01:00
在这个旧之上又增加了别的费用,那这个费用这一块呢,就算是在已有的功能之上增加了别的功能,我们管它呢,叫做功能增强啊,叫功能增强,那第一个。第二个呢,叫控制访问,控制访问,这个控制访问呢,是说你的这个代理类,他不让你访问这个目标。那就是例如啊,例如我们的商家不让。你的用户啊,不让用户访问,厂家就是这个意思,叫控制访问。代理类不让你的用户访问到这个厂家,这有控制访问。功增强呢,也补充一句,功能增强就是在你在你的这个原有的功能上增加了额外的功能。
02:12
啊,额外的功能,那这个新增加的功能。啊,我们叫做功能增强,功能增强,你本来呢要去入学的,这个入学呢。这个过程中你要额外的花一些钱,那这个呢,我们叫功能增强,就是带领模式的两个主要作用,功能增强和控制访问,在我们实际项目开发中呢。最常用的功能是这个功能增强,那就是说你保留了原有的功能。这个原有功能不改变的情况下,我可以额外的增加我需要的其他的功能啊,我需要的其他的功能,这叫做功能增强啊,功能增强。
03:02
这是它的两个主要的作用,这是我们的零三啊动态代理啊代理。好,这是作用,一会儿呢,通过例子呢,我再给你体现,怎么叫做功能的增强。下面来看一下要实现这个代理应该怎么做,实现这个代理的方式有两种,第一种呢叫静态代理,第二种呢叫做动态代理,我们核心呢,要了解的是它动态代理啊。两种方式分别介绍,首先说静态代理,静态代理呢,它指的是我们这个代理类是自己手工实现的。手工实现的啊。手工实现的,就是说呢,你自己呢,需要创建一个Java类。
04:05
啊,创建一个Java类来表示这个代理类,你自己来写这个类,同时呢。你说要。代理这个目标类是固定的啊,或者说是确定的,是确定的这种方式呢,叫静态代理,它的特点就是第一个是手工实现的。第二个呢,就是这个目标类呢,是固定的,是确定好的了。第二就是你这个目标类是确定好的了。你带的是谁?这个目标是确定好的了,这叫静态代理,这种方式呢,它实现简单,理解呢比较容易,静态代理实现简单,理解容易。它的特点是啊,第一个就是实现简单啊,简单,第二个呢,就是容易理解,在它的优点啊。
05:13
简单理解,那现在呢,我们就实现一个静态代理,我们呢,这个例子呀,用来呢模拟一个。模拟一个用户购买U盘的行为。啊购买U盘,那购买U盘的话,那这个用户,那它就应该是客户端类呗,客户端类。然后我们这个买U盘的话,是不是有商家呀,商家就是代理的,他代理某个品牌的U盘。对吧,你买的金士顿的闪迪的呀,东芝的呀,这不是品牌吗?那这个代理商呢,他给代理的是某个品牌的U盘。
06:03
商家卖东西,这个东西最终得有一个厂家对外提供吧,所以一个厂家,那厂家就是我们的目标类的。目标类,因为最终你这个商家是代理这个厂家的东西,对外进行买卖嘛,所以呢,商家是代理厂家是目标,真正买东西的是用户,我们叫做客户端。三者的关系是。那应该是用户他去访问我们的商家,商家呢在访问我们的厂家是这么一个过程。用户是客户端,商家是代理厂家呢?我们叫目标,这是什么三者的关系?
07:01
那这里边我们要明确的就是我们的商家和我们的厂家都是卖优盘的,他们完成的。所以说功能呢,是一致的啊,是一致的都是卖盘。卖优盘啊,卖U盘。那我们应该如何去做这个功能呢?啊,实现的步骤,所以大家想啊,如果你想表示某一个功能,你表示某一个功能啊,你表示是。优盘呢?还是你表示这个是一个这个商家呀,厂家呀。他要卖U盘,卖U盘,大家想卖U盘,它应该是一个操作吧。
08:04
那这个操作应该对应着一个方法吧。你要想表示你的类有什么功能,是通过接口来表示的吧,接口。所以那第一步这块呢,我们要去创建一个接口,定义卖优盘的方法。创建一个接口,定义卖优盘的方法。他表示你的这个厂家和商家。哎,要做的事情,你说你是厂家商家干什么呀,要卖U盘吗?在代码中你肯定得有个接口来表示你的厂家或者是商家要完成的功能,所以有个接口这是第一步。第二步那我们来创建厂家类,它要实现一步骤的接口。
09:10
卖东西吗?你厂家肯定得卖吗?第三,创建我们的商家,就是代理类也需要实现一步骤中的接口,因为他也要卖U盘。第四。第四那就是我们创建一个客户类,创建一个客户端类,他去调用我们商家的这个方法,然后买一个U盘,那一个U盘这样就可以了,就这么四步。204步呢,我们来实现它。件中,我们新建一个工程,我们选一个空工程next。
10:03
那我们这个就叫做动态代理啊,叫代理。那我们这个工程呢,就叫做fy project啊就行了。Finish。新建第一个model。这个model就普通的Java项目就完事了,他不用做web项目啊。给它加个工程,然后next。那这个程序呢,我们叫做CH01,第一个static静态代理。然后。Finish。OK啊。就完事了,那我们这儿写一个read me这个程序呢,是一个静态代理这个代理类。
11:01
是手工。创建的啊,手工创建的,代理的这个目标类是固定的啊,是固定的。实验步骤我就拷过来了,就这四个步骤。啊,就完事了。按照这个步骤呢,我们来实现一个静态代理来完成一个买优盘的,就这么一个操作啊,也就说对用户来说是买U盘,对商家来说是卖U盘,完成这么一个功能。
我来说两句