00:00
好,同学们,我们需求啊已经全部给大家做完了,三个需求啊,尤其是第一个需求,我们采用了很多种不同的方式来实现,对不对,但是你会发现呢,我们写了那么多的代码,但是这个条理上啊,好像感觉不太好,为什么呢?咱们是一条线从main方法的开始入手,然后呢,一条线走下来,这样的话会感觉啊,这个代码没有层次。啊,一条线一条线下来就会感觉它有点乱,所以啊,这个在工作当中它肯定不能这么干啊,这样的话,当你维护啊,包括你扩展功能啊,都是非常困难的,它不容易,那好,那我们工作当中我们应该怎么来做呢?对不对?哎,这个我们是需要去探讨的,那么首先我们先说一下,在咱们早期的时候啊,我们代码开发,其实它会有自己的一些什么,我们的架构。他要遵循一些我们代码开发的一个架构的模式啊,比方说咱们这里说一下在早期的时候,我们这里的架构模式是什么呢?来给大家说一下,咱们叫做什么呢?MVC啊,咱们叫MVC,在我们Java学科当中啊,有一个MVC架构,这个MVC架构呢,其实也经历了不同的这个变化,这个咱们暂时就不说了,咱们重点不在这儿,咱们这里呢,说一下什么叫MVC,咱们叫model啊,咱们叫咱们controller。
01:28
这个就叫MVC架构,那这个是什么意思呢?首先我给大家说一下,把它的历史渊源说一下啊,在咱们Java最开始流行的时候,其实是因为网络啊,因为网络为什么呢?因为Java是可以嵌入到浏览器当中,让大家使用呢,那么这个时候比方说一些游戏啊什么的,就可以随着Java嵌入到我们的浏览器当中来玩了,那比方说叫Java的APP,对吧,Java的小程序小应用就是这个意思了,那么这样的话,玩的人多以后呢,我们Java就被大家所熟知,那这样的话呢,我们Java的web开发就慢慢流行起来,那么Java web开发当中啊,它其实有一个非常重要的技术,这个呢,我们写上啊,咱们叫web开发当中有一个非常重要的技术叫S。
02:18
它叫sol,这个sol它其实称之为叫做服务器的小程序啊,就是写在服务器端的一个小的一个逻辑程序,咱们称之为叫sol,但是呀,你要记住了,它的主要目的是写逻辑的,可是对于web来讲,我们很多的网页它是需要展示出来的,所以啊,咱们的这个sol就发生了点变化,什么变化呢?它里面会写Java代码,也会写咱们的网页的HTML代码,还包括CSS,还包括咱们的Java script,诶,会写这样的代码,但是呀,你的serverl主要的目的是为了完成逻辑,那么这些生成网页代码不是他擅长的,所以在我们生成这样代码的时候就出现很多的问题,后来呢,就出现了一门技术,这个技术叫什么呢?叫JSP。
03:10
咱们叫JSP,就是它这个技术啊,非常好,好在哪了呢?它可以直接把网页的代码直接写进去,那如果你想解Java程序也可以啊,用那种我们的什么标签给它嵌入进去也是可以的,这样的话,无形当中啊,等同于简化了我们的开发,所以在当时啊,受到了很多的web程序员的欢迎,而且有一个非常强大的功能,什么呢?你像咱们这写个serve吧,哎,如果你发生了逻辑的变化,去想做一些测试吧,哎,你得不断修改吧,每一次修改都需要重新启动服务器,就特别的麻烦,但是我们的JSP就不需要,当你去修改的时候,比方说逻辑发生了变化,你一修改做测试,你只要刷新浏览器就完事了,所以服务器根本就不需要重启,那么在这种情况下,开发效率就明显提高了,诶我们的程序员就非常的欢迎,所以后来就导致什么呢?我们的逻辑代码不光是网。
04:11
行业代码呢,我们的逻辑代码都不再采用了,都采用JSP,包括咱们的JDBC连接数据库的操作,这些也都写在JSP里面,为什么?就是因为方便啊,我写sol写了一大堆啊,每一次改都得重新启动服务器,我们JP不用啊,你只要改一改,直接刷新就马上启作用,这多好啊,哎,提高开发效率,所以啊,在当时很多的程序员都这么干,可是后来发现不行哪不行啊,后来发现呢,我们JSP当中又有Java代码,又有S,还有CSS,还有va,大量的码合在一起,你想去改其中一块,或者想剥离其中一块很困难。所以这个时候没有什么好的办法了啊,很多的程序员已经认识到他的问题了,所以这个时候就出了一套我们的架构模式,就叫MVC,它强制性的把咱们的代码分成了三个组成部分,第一个叫controller,叫控制层啊,叫控制器。
05:18
他来控制我们的数据流转的方向,而我们的view叫做视图,它是用来展示数据的,比方说咱们的页面,它就叫视图了,还有我们的model,咱们叫模型,咱们这里的模型呢,包括两大类,一个叫数据模型,一个叫业务模型,业务模型就是逻辑,我们的数据模型就是一些封装啊,封装的一些实体类,那这就叫数据模型,所以啊,就强制性的把咱们的程序呢分成几块,页面是页面,控制是控制,逻辑是逻辑,这样的话,你把它分开以后,降低了程序和程序之间的耦合性,那么扩展性就一定会增强,对吗?所以啊,这就是一个架构模式。
06:02
但是啊,这个架构模式有个非常重要的一个点叫view,这个view呢叫做视图,它的主要目的就是把咱们的网页的代码呢写在视图当中,这样的话跟咱们的逻辑代码呢,给它解耦合,可是咱们大数据领域当中哪有页面呢,你一般就是把你统计分析的结果放在我们的存储当中,由我们的第三方的系统来读取存储中的数据来展现出来吧,所以我们的大数据领域当中啊,这个视图这个事儿。一般是没有的,那你没有的话,那这个MVC你好像就不能遵循了,对不对,那我们该怎么办,我们一般还会遵循另外的一个架构模式,咱们叫三层架构啊来。所以啊,我们这里写上啊,咱们写上叫做三层架构,诶老师,我们的MVC不就三层吗?你说的难道不是MVC吗?不是,我们说的是另外一种架构模式,一种纯Java的这种架构模式,就是没有任何的页面视图这种东西啊,那么这个架构模式是什么呢?它分了三层,叫controller啊,它叫做controller,哎,就是它了,嗯。
07:12
啊,咱们叫controller,就是它这是我们的第一层,咱们称之为叫控制层啊,咱们称之为叫控制层,所以我们写上啊,咱们叫控制层,那还有呢,我们还有一个叫做service啊,咱们叫service。咱们叫服务城啊,咱们叫服务城,嗯,好,还有一个叫DAO,咱们叫做持久城啊,咱们叫做持久城啊来。好了啊,所以这个是我们要给大家介绍的三层架构,在这个当中是没有那个视图的概念的啊,那这个怎么理解呢?其实还好理解,大家看我画个图,画个图当中,比方说现在我们的应用程序啊,应用程序在执行的过程当中,它不是说一上来就该怎么怎么办,他要先考虑我们的数据的来源和它的调度,所以呢,这个时候我们画一个箭头啊,咱们有一个应用程序,应用程序呢,会先走什么呢?先走咱们的这个controller,咱们称之为叫控制层,所以我们写上啊,咱们叫controller就是它了,嗯。
08:21
然后呢,把这个呢,我标识上一个红色,那么你的控制层,它只是来做调度性的作用,所以它的主要目的呢,其实是一种调度啊,它是一种调度,那么好,那你是调度的话,那么你该做什么样的逻辑服务呢?对不对?所以这个时候呢,我们就开始应该有个什么东西呢?咱们叫service啊,咱们的service,这个service呢,我们应该叫服务层啊,它是起做服务的,其实说白了就是逻辑啊,这里呢,我用一个绿色来表示,那么我的箭头,诶,我们的调度就会走到某一个服务当中,咱们的service,嗯,好了,还有,那么你的服务在处理逻辑当中,是不是可能跟数据打交道呢?那么这个跟数据打交道就跟我们持久成相关了,比方说数据库,比方说文件,这不都是数据持久化的一种体现吗?所以说我们来我们放过来啊,嗯。
09:14
放到这儿我们写上叫做DAO,我们这个地方就叫持久城啊,咱们叫持久城,那么这个持久城的话,颜色标识上一个蓝色,那么我们的箭头诶,就会给它访问过来,那么你访问过来的时候,那么我的持久层呢,应该跟文件呢,跟数据库呀打交道,对不对,那所以我这里呢,再画一个啊,咱们再画一个放过来,放过来的话,比方说咱们的file,咱们要读取文件,那么你读取文件的话,我的箭头诶应该就指向这个文件。那么你读取文件以后,你得把文件的数据读取过来呀,所以说来放到这边,嗯。好,给它放过来,放过来以后我读到了文件对不对,那这个时候呢,我们的数据呢,干嘛呢,应该往回返啊,应该往回返啊,就是这样,那好往回返以后,那我的service拿到了,我的数据该怎么办,是不是应该继续做逻辑处理啊,你处理完以后,你的逻辑是不是也得有个结果,这个结果呢,就回到了controller这一边,你回到了controller的话,由就根据我们的结果,由controller来决定你该怎么处理,比方说你是把它存储到另外的地方去呀,或者说打印在控制台呀,还是怎么怎么办呀,就你来决定了,这个就是由控制来完成的,我们就不管了,他做服务,他做数据交互,你来做调度,这是我们整个的一个流程,所以啊,这个我们就称之为叫三层架构,控制层,服务层和持久层,哎,就这个意思啊,那好,那么我们接下来就想办法要把咱们之前。
10:53
的程序稍微的改善一下,用这种工程化的代码,这种架构模式来实现咱们的需求好不好,同学们。
我来说两句