00:00
好,那么先把需求来,我来个周重发嘛啊,周重发也是接口的实现类,所以我上到这啊,那么还是我的super。大周,哎,来了implement实现我当前的那个接口service啊,任务的接口,那我必须得实现这个接口里面那个尺我才能对上啊,那实现这个尺,那么这这是周润发来了,那也也没啥说的嘛,就表明一下身份就行了啊,我是周润发,我正在唱歌,发哥好像不唱歌是吧。呃,就唱吧,那我让他唱,我的程序需要他唱就唱吧,那咋我不能再换一个别的,别的我也不熟啊,这是我比较喜欢的两个。大明星啊,我自己比较喜欢。好,然后我们来看,那么这就这么着,哎,就这么着,那么现在的这这个呢,也是目标对象同学嘛,因为发哥你也不可能直接跟人家联系啊,这是个目标对象。
01:04
那么他他的功能就是也是在唱歌啊,表明一下身份,我是谁谁谁我正在唱歌就完了,然后再来看。那么这个代理呢?那么他他的这些功能不变,他还是代理这个,但是这个地方呢,我们是不得让目标对象亲自来这表演。你如果只有华仔,你就上一个华仔,如果在superstar州呢?你是不是发哥也来了啊?发哥也来了,那new反正谁来我就让他来唱歌嘛啊,Superstar周,然后呢,这个周打点thing去唱就完了,但是你不能让他们两个同时唱,这不符合我的需求,我请谁来谁一个一个唱,别两个一起唱。那么在这儿你要怎么办?你是不是要判断此事是刘德华来了,还是周润发来了,然后我来调用他当前的sing唱歌的这个方法。
02:00
你是不是在这个里面要经经过一个判断,然后再决定让他让谁调用谁的方法去唱歌。你是不是要这么干?对吧,你不然呢,你为了切嘛,灵活的切,但是这种判断你没法做,为啥现在我写代码的时候,这个时代哎,我就知道这俩就来了,那么等这个时代在发展的过程中,后面会有越来越多的明星,我们就这一套程序来请明星来表演,我们就这一套程序,我们学校成立了100年,排斥这套程序请明星来表演,那你不能预计50年后什么百年后,那那些明星叫啥名字,你能提前预。就像阿南德一样,你来个预言吗?你预不了对不对?所以你就算在这,你判断是刘德华还是周润发,你死的,你只能判断是刘德华或者是周润发,你不能判断未来可能来的,比如贾玲来了或者沈腾来了,你不能判断对不对,你不知道我们会请谁来,我们想请谁请谁,我们请的多着呢。
03:08
你这个程序如果写死那不行。必须灵活切换。这时候上接口。上接口就能解决这个问题,怎么上接口解决这个问题?来第一个面向接口编程,我们讲的类中的成员变量设计为接口,我现在就用静态代理给你套面向接口编程的概念。啊,所以为什么说这个课难学呢?是因为一堆概念套进来,我已经用极为简单的生活化的这种案例在给你们诠释这个晦涩难懂的概念,你就慢慢的去理解,去接就行,为什么类中的成员变量设计为接口,我就能灵活的变了呢?来,我先把这个成员变量放进来。我们搞成public的啊,别problem public就行,这个地方应该设计是什么呀?是service,然后target,这就是目标对象啊,目标对象就可能是周润发,可能是刘德华,这没毛病吧,啊,这个对象我是不得传进来。
04:12
我得从外面传进来,来啊,传入目标对象,不然你你怎么让他去干活呀,传入目标。传统目标对象啊,那么怎么传最简单的方式?有各种方式可以set什么什么最简单的方式,我们用构造方法来传啊,Public a。A agent。啊,那么这时候又用到agent,我怎么用agent的这个构造方法传,可能是刘德华来,可能是周润发来,这个地方传谁传谁的类型。能不能反应过来?是不是应该传接口的类型啊。那么接口的类型就是周润华也能进来,刘德华也能进来,随便你后面来的所有的那些目标对象,你必须实现这个接口,而我用接口作为最大范围的这个传只,我是不是就能搞定所有对象?
05:09
对啊,所以这个地方又是面向接口。传中目标对象方法看这啊方法的参数设计为接口,这还是在面向接口编程,而spring框架最重要的一个点。特点就是面向接口编程,面向切面编程IOC。控制反转,那么面向接口编程贯穿在我们各个框架中,以至于我们当前的开发中贯穿进去。面向接口编程很重要,好,我知道设计为接口来啊,VSAE。然后target target,然后这个里面的怎么搞this打点,为什么要this,知道吗?这个地方为什么要Z?
06:00
得调成原变量你,不然这个target直接等于target近水楼台先得月了,这个target也是它,这个target也是它,因为你被圈在当前的这个方法中,Target我只能看到它,你看不到类中成员变量,所以这就是类中成员变量的调用,要用this指出去指类中的成员变量的target。那么你传给我的目标对象,付给我的成员变量。能懂了吧?啊,面向接口编程的两大套我们都用上了,好,那么这个设计为他盖以后,这的好处是什么呢?同学们,我用不用管到底是谁传进来?并不用管,为啥呢?你用接口调调指向实现类的时候,实现类是什么,你看到得到的用心的结果就是什么,所以这个地方甭管是谁来了,他打点sing唱歌就完了,刘德华来了,那么刘德华的实现。
07:05
如果是刘德华来了,刘德华的实现替换掉当前接口中的C方法,周润发来了,周润发替换掉接口中的C方法,谁来谁唱歌,这就是接口的好处。能懂吗?啊,试试看,好,那么这个地方呢,就是面向接口编程的。面向接口啊,面向接口的。编程啊,面向接口编程的调用时啊,调用时接口指向实现类,这个就是接口啊,指向实现类,谁传给我了,我就是谁。就这概念啊,好,我们来看做,做了这么一个更改以后,能不能灵活的进行切换测试就知道了吗?啊好,那么这个现在我们就用不了了,为啥我先把它毙掉啊。为啥这个用不了了呢?是因为我们不是就没有无仓的构造方法了吗?啊,所以这个就坏掉了,坏掉没关系,我们重写一个正改进后的啊,真正应该用的是这个改进后的,过去的那个都已经不行了,不适应朝代的发展了。
08:26
好,那么现在在这我要干的活,诶,Public test怎么了?哈哈。这个啊,好了我们来看,那么这个测呢,还是一样有接口和实现类,首先用接口。指向实现类啊,那么这个就随便了,我们叫叫啥呢,这个service。嗯,那我们叫。卖agent版或者叫A。Agent agent,然后等于我们在拗这个agent的时候,这个地方是不是要传。
09:04
Superstar流进去。能懂吗?然后呢,这个agent的这个接口,调用这个方法的时候,我们来看看。什么?刘德华在唱歌?是不是刘德华在表演来换一个C,这个地方换的就是你面向客户的最外层的切换,就是我们最终就相当于客户在用的时候,他在那从表单中选,或者是自己从那个输入的内容,他去换了,这就是最外层的那个处理了这个。就灵活了啊,然后我们来看。那么是不是我是郑重发,我正在唱歌,随便你谁来了,你只要实现这个接口,我是不是就从那能从这儿丢进去。你只要实现这个接口,就从那能从这丢进去,所以你就能看到我正在完成的业务功能。这就使用接口实现灵活的切换。
我来说两句