00:00
啊,你以为结束了是吧,其实还没有啊,OK啊,那么接下来呢,我再来给大家去,呃,说一点扩展性的东西,就是在我们这个基础之上呢,我们还可以去做什么东西,对吧?以及我们可以进行优化的一些东西,这个我只给你说大概的一个方向,然后呢,大家下去以后靠你自己去做对吧,就是我给你指出一个方向来,然后呢,你可以自己去把它这个啊优化优化。能听懂吧,好,来,首先第一个我们来到我们写过的这个中。Login,那么大家能看到,呃,我们在这个login solid中呢,我们如果说想使用到这个DAO的时候。那我就把它溜出来了。是吧,啊,我在使用到DAO的时候呢,我又把它扭出来了。虽然说用的是不一样的。
01:00
能明白吧,但是哈,大家想一想,你用到一个对象,你就很任性的把它扭出来了,你用到一个你就很任性把它扭出来了,这个其实在设计这个角度来讲很不好,这个耦合性是很强的。能明白这个意思吗?什么样做耦合性很强呢?我们就来想当前我的组件是这两个啊,就是我有一个,就拿这个图来说了哈,我现在有一个sorry组件,我有一个DAO的组件,正常情况下sorry我是要去调用DAO的,那么其实我们将来的话呢,这个daa会放放到这这个地方呢,我们会有一个service,会有一个业务层出现啊,但是不管有没有这个业务层,他们之间都是一个调用的一个关系,那现在我们就拿上这个service跟这个DAO来去讲,你在service里面你想用DAO,那你就直接在这里面把它用出来了,那么这是一个硬编码,假如说将来我的DAO换了,我不想使用JDBC来实现了,我使用的是框架,比如说my be来实现的,那么你前面的这个new操作就会导致什么呀,它更换这个地方也得更换。
02:10
因为你100钱了,对不对,那么像这个东西我们可以怎么决一下呢?可以怎么解决,我就要考虑能不能给他做一个封装。比如说我提供一个工厂,这个工厂专门就是造DAO的。能理解啥意思吗?啊,我只要使用DAO,那我就找工厂去要,但是呢,你得去想清楚啊,你不能说只有一个DAO,比如说我有五六个DAO,我找工厂要任何一个DA,他都能给我创建出来,你就去想这个怎么去处理。而且我不希望是硬变码,就是你在工厂里面,我也不希望你是通过new的方式把它扭出来的,因为这也是一个硬变码。好,所以说呢,大概的解决思路是什么样子的呢?我跟大家去说,首先你得提供一个工厂,工厂大家都写过吧。
03:02
写个工厂类吗?没有吧,就写个类嘛,类里面提供个方法嘛,这个方法帮你创建对象嘛,这就是一个工厂啊,有啥难的呀,是吧,大概的一个方向就是什么样子的呢?你提供一个工厂内,然后呢,你把你所有要用到的DAO都把它配置到一个配置文件里面。理解吧,然后你在这个solid,这个solid里面,你去用的时候呢,你就找工厂要,要的时候呢,你只需要指定一个K就行了,而这个key就是你啊在配置文件里面所配置的那个key,比如说A对应的是user daob对应的是employee DAO,那么你在获取的时候,我只要获取一个AOK,你把A告诉工厂,它就能给你返回一个user DAO,我想实现这个效果。这样的话,我们就已经把这个do的创建与我solid就已经完全分离了,而且我们中间是指耦合了一个配置文件,对于配置文件来讲,我们操作起来就相当灵活了。
04:07
能理解这个意思吧?哎,只要你那个K不用变,将来我想变什么对象,我只要改配置文件里面那个K对应的V就行了,对于我的solid来讲,我不需要有任何修改。这是现在我希望大家能做到的,将来的话呢,我们学了以后呢,我们就不用这么麻烦了,有一个特别好的解决办法,理解吧。啊,这是我们能。这个优化的第一个东西。记住了吗?记住了吧,OK,这是第一个啊,好,那么大家下去以后呢,你尽量尝试着去把这个东西做一做,然后呢,提升评论自己,不管做出来做不出来,你一定要努力尝试一下,对吧,失败就失败了呗。是不是你不做?你觉得你能成功是不是你做了你才知道啊,原来我不会对吧?你就能找到你的一个弱点,然后呢,你就要朝着这个方向去强化它是不是啊啊,所以这个东西我们一定要脚踏实地的,就是你亲手把它去做一遍才行,明白了吗?当然了啊,这个我就不给大家这个时间要求了哈,就是啊,在你有生之年把它做完就行了啊是吧?啊好了就再笑啊,还有条件的是吧?啊,下周一如果你做不出来我就打死啊有生之研是吧?啊所以这个我就不给大家这个时间要求了哈,你就呃尽你自己的最大努力去把它努力实现一下就行了,听懂了吧,OK,那么主要呢,就是想跟大家去说一下这个东西啊,然后其他的东西的话呢,就是啊,我再给你指明一个方向啊,就是现在我们每处理一个请求,我都要去写一个骚场,也比较烦是吧,那我能不能考虑说我把所有的请求都集中到一个骚。
05:54
猫怎么来处理啊?能不能啊?太能了是吧?来思路听好了,我写一个so,这个so我会处理任何一个请求,明白吧,但是呢,对于这个so来讲,他在去配置的时候,你就必须要让所有的请求都能进来,你得配成斜方形。
06:15
能理解吗?这样的话,你说的请求是不是都进来了,进来以后你得知道我刚才是什么请求,那你可以通过request get request URL或者是URL,我们在鉴定在那个过滤器里面用过,这样你是不是知道你当前这个请求是什么呀?然后你再根据你这个请求去找到你对应的处理就行了,你判断如果你的请求是登录,OK,这个if里面就是登录的处理,如果你的请求是注册,OK,这个if里面就是注册的处理。这样我是不是把它集中到一个里面。能听明白吧,OK,这个也是第二个可以进行优化的,大家下去以后把它尝试着去做一下。明白了吧,当然这个就很耗费大家的这个精力了啊,你得首先得想明白怎么处理,然后呢,你得把我们大部分的代码都进行一个什么修改。
07:05
对吧?但是如果你真的能把这个东西做出来了,那么对于Java他们来讲就没有任何问题了。明白吧,啊,真的是哈,所以说呢,这个方向的话,大家可以下去以后参考的,然后呢,把它去实现实现。听懂了吧,明白了吗?OK,好,再一个。第三个哈。我们在写的时候呢,大家注意哈,我们在这个登录上去以后呢,给你讲JSP。好me,然后呢,123456好,Log这个地方呢,我们只实现了一个查询,那么大家下去以后可以尝试着去做修改、删除、添加,好接下来就是思路,对于添加跟修改来讲,它是要分成两步来做,比如说我点了这个添加,那么首先你得去往一个添加页面,在这个页面中你得提供出一个表单来,能让我去录入数据。
08:08
录入完以后,你提交表单,把数据提交到后台的solve中,再把这个数据插入到数据库添加就完成了。明白了吗?嗯,能听懂这个意思吧,啊,修改也是一样的,我去点这个修改,那么你要注意你得对应着把这一条数据查出来,显示到一个页面中,这个页面中是我修改的页面。然后呢,这个页面中必须要把我的原来的数据先给我放到那我就要看着去改。明白吧,我得看着原来的数据去改,其实这个也特别简单,就数据回去了,你给他通过什么一两百万取出来放进去就不就显示出来了吗。对吧,OK,然后呢,改完以后呢,一提交OK到后台做一个数据库的修改操作,这个修改就完成了,再一个删除,我点这个删除,那么你要发送一个请求,并且把我当前这条数据的ID传到后台,把它删掉。
09:07
啊,不管你是添加也好,修改也好,删除也好,你做完了以后,一定要再回到我当前的这个页面。怎么回来呢?你怎么来的这个页面,你就怎么回到这个页面。能明白吧,啊,你就怎么回到这个页面。啊,那么怎么来的这个页面啊,我是经过一个登录操作来的吧,是不是啊啊,我经过一个登录操作来的,那我怎么再回来呢?其实本质上呢,我们应该重定向到一个什么呀。重叠下到一个什么呀,登录页面的啊,这个登录的那个请求的,然后呢,让他发送这个请求是不是过来了,但是呢啊,我们应该登录的时候,我们要做了一个什么用户名跟什么的处理啊,跟那个密码的一个处理了,是吧?首先这个东西的话呢,就有点稍微复杂一点了,那么大家的话可以去想一下,有没有更简便的一些方法可以把它做出来。
10:03
理解了吧,啊,反正就是你修改完了,你删除完了,你添加完了以后正常了,应该我们都要再回到这个页面,你得让我看到你添加完的数据,你修改完的数据,以及你删掉那个数据。对不对啊,那么这是我的一个思想啊,这是我的一个思路,那么大家呢,可以尽你自己最大的努力呢,去照着这个方向去做哈,但不一定一定要一样的,你能把这个功能实现了,那也是很不错的。明白了吧,哎,这是我们的第三个可以做扩展的地方。明白了吗?啊行吧,呃,那我们就说上这三个啊,这三个如果你要真的去做的话,也够你们做一段时间了,对吧?啊,如果你要不做的话,我说再多那都是假的好吧,啊,那这就是我们后续呢,给大家去做的一个,就是让你们可以去扩展的一些东西,我把大概的这个思路能力描述,然后呢,下去以后你们就自己发挥吧。
我来说两句