大家好,今天给大家分享一下MVC 三层架构的模式
首先你要知道,所谓的MVC就是一种面向于javaee企业级开发的设计模式
这里要强调一点,MVC 不是一种技术,不是一种像spring 那样的框架,它是一种思想(可以理解为一种解决问题的风格)
MVC : Model View Controller,(这是它的英文)
在这里,解释一下:
M: 模型
V: 视图
C : 控制器
在早期,一个项目的代码全部写在了一块, 会出现很多问题, 而我们今天讲的MVC 模式,就是将原先的项目的业务逻辑,数据,界面(也就是我们的视图)这几个模块进行了分离
有关于它各个模块的作用:
模型层(M): 是负责项目当中数据的处理逻辑,像jdbc的代码就写在这里
控制层(C): 是负责项目当中模型层(M)和视图层(V)之间关系的协调与控制(就是servlet相关的代码,对于早期原生代码写的项目而言)
视图层(V): 负责数据的展示,主要面向于前端(web jsp vue等等)
可以看我画的这个图
主要的组成部分,就是 浏览器,服务器,数据库
解释:(我把字体放大一点)
这是一个传统的web项目的架构图(就是没有使用框架技术,而使用原生代码写的项目),所谓的web项目其实就是可以通过网页资源的方式访问的服务,而你要访问网页服务就是要使用到浏览器,你访问的这些网页服务,其资源和他背后的业务逻辑代码就是放到了服务器当中,而服务的数据要放在数据库里,使用jdbc 这个技术来实现程序和数据库的数据进行交互的问题(就是程序要对数据库里数据进行操作),服务器里的这个servlet 非常的重要,因为我们可以看见,在这个架构图当中,servlet既要管浏览器的事,又要管数据的事,很累
servlet的作用:
1.接收并处理前端(来自于浏览器)发送给它的请求
2. 调用数据处理(jdbc)的业务逻辑
3. 响应数据(就是做出回馈)
所以说servlet 在这个过程当中很累
所以我们要简化或者说分散Servlet 的压力
看这个图:
其中, 我们使用MVC 的思想对原有的模块进行重新划分(jdbcs是M:模型),servlet是C:控制器,view负责写我们项目的前端呈现的部分
这样做,就分散了servlet 的压力, 这就是 MVC 的作用
在Java当中,有关于MVC 的管理可以使用包的结构(就是将耦合性很高的代码分散出去)
整个结构可以这样写
- 模型层: dao(这是命名)
- 业务层 service
- 控制层: controller
- 视图层: 在webapp目录下
- 实体类 Javabean 放在 pojo 包下
- 工具类 : utils
- 公共类: common
有关于这个东西,有几个点要讲一下
- 这就是MVC 模式下的项目结构
- 左边的功能的表示, 右侧的是包的命名
- 命名不是死的, 想怎么写怎么写,只不过这是我们的一个普遍共识,大多数人一看就知道
- 模型层,控制层以及视图层是一定要有的, 其他的看具体项目而定
- 接口底下要写上实现类
- dao 层接口的命名规范: 模块名+Dao, 举例: UserDao
- dao 层实现类的命名规范 : 模块名+ Dao+ impl 举例: UserDaoimpl
Dao 是什么
data access object 就是数据访问对象,简称Dao ,封装了数据访问逻辑的对象
Dao 的优点:
- 方便测试: 如果将数据逻辑单独放到dao 层里, 就可以避免直接访问servlet
- 使开发上的分工更加的明确: 一部分人去写servlet,一部分人去写数据访问的逻辑
- 使代码的维护更加方便 : 即使数据逻辑发生了变化,也不会影响servlet
MVC 的特点:
. 1. 使代码更容易维护
2. 方便代码的测试
3. 方便开发上的分工
MVC 缺点:
mvc 模式使整体的开发代码量加大
,使设计的难度加大
,加大了开发的成本
好了,有关于MVC三层架构的模式就到这里了,谢谢大家
.