00:00
好,下面我们用代码的方式去实现啊,因为又开了一门新的课,所以我们需要新建一个空的工程,都是这样啊,每门课都这么干。动态proxy代理奥啊,我们叫这么一个名字。然后呢,放到我们动态代理的,你看故意因为为了避免路径中有中文,就故意把动态代理写成这个。英文的这种方式。好,这时候新建模块啊,新建模块,在这个里面去新建模块,然后还是没问的这个呢,新建Java SE的项目就行。然后在这边有有quick克star,然后我们下一步,然后在这group ID呢,在为M打点BJ power power node artif ID呢。
01:08
丹尼,没课。然后我们杠001。杠sta代理啊,不写了。就这么长就行。好,下一步这这都不用管,你闭上眼睛点到底啊,然后呢,在这。呃,先把我们当前这个就在这改是一样的,把这个。JDK的版本改改,然后model新建的这个JDK的版本也会有问题啊,我们改一改,然后depend的这个JK的版本改好,就把JDK的版本改好就行啊OK。好,那么当我们第一次创建的时候啊,然后他生成的这样的一个项目,然后来看在这个里面我们缺啥呢?你看这种招va SE的项目,他其实缺的目录少,呃,不像web项目缺好多,你看这个大结构是有的,在Java下,在慢下面缺什么。
02:16
补目录啊,补齐目录,这就是套路,每次来目录补齐依赖加齐,项目就整好,那么这这目缺啥目录啊?Re CE,不管我们用不用,我们但凡上没的项目,我们就要去干这个事啊,就目录补齐,把这个结构补好再去干活,Re so CES,然后呢,单独的一个,我们可以右键,然后直接mark director,这个呢是这个笔记本呢,然后这个呢是我们的那个红绿灯的,哎,就这么着,把这个目录先补齐,但是这个下面呢,还有这个我我不习惯要它,所以我就把它干掉,然后同样的在这个地方。
03:00
招下面这也有一个,这个我是不需要的,就把它干掉,因为它是系统提供的断言的方式去测试,我不需要啊,好了,那么这边目录搞好。在这边来修改我当前的po文件远程访问的名称,不需要你删不删都不影响,我是不习惯乱七八糟的代码放一堆,然后在这这个也是不需要干掉。好,那么这样的话,我们当前的这个项目的改造,包括目录,包括泡沫念就整完了,下面呢,我们就在这个项目上来完成我们功能的开发,我们的功能是怎么着呢?就是这个首先的话,我们是不是得有接口。对吧,接口是用来进行规定华仔来这表演的业务,他是来唱歌的,他不是来说脱口秀的,我来规定这个业务啊,把这业务功能明确了,然后呢,在这的话我们来上。啊,上一个接口啊,上一个接口,接口我们放在ER啊。com。
04:03
啊,ER VI service打点大写的VI service的这个接口中啊。好,那么在这个接口interface改一下这个接口,在接口中呢,我们只有规定了一个唱歌的业务功能是吧。规定了唱歌的业务功能,那最简单了,我们现在不是要求方法写的多么复杂,No,我们就是把流程走明白,所以最简单的没有返回值,没有参数的这么一个方法,OK的吧,啊,然后呢,这个是我们当前的业务接口,在业务接口下边我们是不是应该上superstar流的这个时间类。啊,接口完了我们就开始上实现类,实现类先把华仔弄出来放在这啊,就唱歌的大脑先整进来,那么实现类呢,是要在当前的接口照,然后在ipl,这是实现类的包,养成这种习惯啊,这是实现类的包,打点呢,我们super super。
05:11
大刘这是一个类啊,然后我们决定他,那么这个是那个目标对象啊,这个就是我们的目标对象刘德华啊,刘德华实现哦,实现业务接口啊,业务接口中的功能啊,进行唱歌表演。进行唱歌啊,唱歌表演就这么个事儿,然后呢,那就来实现接口谁。Erv service嘛啊service,然后呢,实现接口中未被实现的方法唱歌,他怎怎怎么唱歌。表明一下身份,我是刘德华,我正在表演唱歌是不是就行了,就说明一下他业务功能就完了。
06:05
这个华仔的这个业务是不是就实现了,来下一个下一个该谁了,你看这个整好拿走,这个也整完拿走,是不是该该该整这个了。这个是不是就是那个助理啊,我们都把助理请出来,然后我们学校最终测试的时候,我们只能跟这个助理打交道,那我们来看啊。啊,我们来这做这个事,那么这J继续啊,继续,那么在这来助理,助理我们就叫agent a j,他是助理代理,都是这意思啊,这是个英文单词,就是助理的意思。好,那么agent要不要实现业务接口?赶快看图。这个助理是不是他得实现这个接口,你得代理的是这个唱歌的功能,你不能代理别的。能明白吗?啊,那么这个呢,来实现谁service啊service,那么实现接口中未被实现的方法来了啊,这个里面这就是助理该干的活的功能实现啊。
07:17
助理啊助理他其实就是我们的代理对象啊,完成除了啊,除了唱歌。除业务之外哦,之外的其他哦,其他业务什么时间场地预定啊,结算费用啊,能明白吗?时间啊,场地啊,场地啊,预定啊,预定啊结算费用等等,他就是干这些活,他不能唱歌,唱歌不归他,他是代理,他不能够代理主要的业务。就像那个房屋中介,你只是把这个房子租出去,但房子不是中介的,就像那个超市,他卖方便面,他不生产方便面,他只是代理把方便面卖给你,能明白吗?所以代理模式要分清楚这一点,主要的业务功能得有目标对象自己去实现,而不能由代理去全权完成,那不行啊,好,你虽然实现的是一个唱歌的功能,但是我代理干的活是什么?
08:20
预定时间。预定时间,然后来预定场地,结算费用,这都是他干的活啊,预定时间,预定场地啊。预定场地,然后在这儿结算费用啊结算。结算费用,这都踏踏实实是我代理该干的活没错,但这个里面呢,一定要记住什么呀,切记切记。切记切记就是重点,同学们,你走在哪,老师一说,切记切记,马上刻在脑子里,刻在你的脑仁里啊,刻进去,切记切记,业务功能啊,业务功能必须啊由。
09:10
目标对象亲自实现,你代理对象干不了目标对象的活,那不然的话搞啥代理搞啥,目标对象甩掉我代理全部搞完就完了,No,代理只能做额外的附加的这些功能,真正的功能目标对象自己去完成啊,那目标对象怎么让他来这唱个歌呢?需要他唱歌创建他的对象就完了,需要他来拗他的对象,永远是这样,要不然说什么什么情人节没有对象拗一个啊,就需要个对象拗一个出来完了啊,留打点。Sing,唱歌好,真正的业务还是由我们华仔自己在表演,妥妥的。能明白吗?啊好,那么这就是我们的代理对象的功能,下面呢就开始上我们的什么了。
10:02
测试类啊,其实就我们学校在整个的这个就学校了,该上这个了,对吧,那些都整完了,该都都都整完,该整这个了,这这其实就是那个测试类嘛啊,我们就是来访问一下这个助理,看看能不能把整个的这套流程走通,哎,我们就干这个事,所以这这这在哪呢?是不是得到这来测试类啊,然后呢,Test打点买test。好,那么在测试类中呢?我们就来完成功能的测试,Test public void。随便起个方法的名字啊,但是我们习惯那个前面要加test的,这是个规范啊,这是个规范,然后在这呢,我我怎么测。怎么测试功能?怎么测试功能?我应该拗谁的对象,比如说同学们,我现在拗个superstar流的对象,你们看一看啊,然后这个流如果拗的superstar的对象。
11:10
然后呢,我们留打点调,用他的sing唱歌的这个方法,你们说他是会输出什么。是不是就干巴巴的只有唱歌?你你你怎么可能啊,因为你都没有跟人家定好时间,定好场地,费用都没有结算,干巴巴唱歌,人家是不干的,所以这套拉倒不行,我们得怎么着呀。我们是不是得创建a agent啊agent agent等于new agent,我们用agent的这个助理啊,打点C唱歌的这个方法调用,这时候有没有华仔在里面唱歌。有。好,我们来看,哎,这才是一整套业务确定有时间的预定,场地预定都谈好了,华仔刷刷唱歌,唱完歌以后费用一结走了,整个的五一的这个庆典就搞定了,就这么个事,就所有都要有,而真正的业务是这个,那么我们代理的功能是哪些呢?
12:15
代理了哪些哪些城城市,我们代理的那个功能同学们。你得分的清啊,在这个里面。只有这一丢丢真正的业务功能,对不对,代理代理了哪些功能呢?代理进来的是这个,因为你只是找了一个助理啊。调用助理的时候,是不是连这些功能都带上,这才是一个完整的表演的这个流程啊,你有预定时间,预定场地,然后华仔来唱个歌,还有结算费用,能明白吗?哎,这就是一套完整的流程啊,我们访问的是这个助理就搞定了,我们不需要去访问别的。但实际上,同学们这种写法不是最优写法,必掉,永远记住老师说的这句话。
13:03
有接口和实现类啊,必须使用接口。必须是用接口指向实现类啊,这个就是个规范,为啥这个规范是因为你当前这样操作就更灵活,你现在没感觉,你就记住,但凡是有接口和实现类,我就有接口指向实现类。那么这么着,我应该是怎么来做这个对象的创建呢?的agent等于new。Day new a j agent,他这么干,然后这个agent,然后打点thing,有没有同学奇怪,Service这个里面可是空的。对不对,它可是空的,那么我这么指向它的时候,我这边调用能不能出结果,你们猜。
14:01
用心一下,为什么呢?因为你指向的是实现类,同学们换一个实现类,整个业务功能可以做切换,极灵活的。啊,这是可以做切换的,所以这个就是我们讲的静态代理,我们通过生活化的这么一个案例,帮助你梳理静态概理的概念。能明白这意思吗?什么叫静态代理?目标对象和。代理对象实现同一个业务接口,现在能理解了吧,他和他实现同一个业务接口,目的就是我需要你们处理的是同一套业务,你别给我整的7788的,你们就这套业务,你来你是代理,你是主张,你你是主业务功能去实现就完了,能明白吗?而且代理类是不是在程序运行前我先去创建这个代理对象?在程序运行前就已经存在,能明白吗?灵活的进行目标对象的切换,现在还切不了,我一会带你们改进优化这套静态代理,我再带你去切换,现在你先给我把基本的流程走通,哎,我们再往后优化这个静态代理。
我来说两句