MVC-三层架构-SSM

9 篇文章 0 订阅

MVC

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

Model(模型):模型代表一个存取数据的对象或JAVA POJO. 它也可以带有逻辑,在数据变化时更新控制器。
View(视图): 视图代表模型包含的数据的可视化。
Controller(控制器): 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。


MVC架构程序的工作流程是这样的:

(1)用户通过View页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等。
(2)服务端Controller控制器接收到请求后对请求进行解析,找到相应 的Model对用户请求进行处理。
(3)Model处理后,将处理结果再交给Controller。
(4)Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给客户端。

img
三层架构


三层架构是指:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)

  1. 视图层(View):存放接收用户提交请求的代码
  2. 服务层(Service):存放系统的业务逻辑代码
  3. 持久层(Dao):存放直接操作数据库的代码

每一层都各负其责,那么该如何将三层联系起来呢?

  1. 单项引用(见下图)
  2. 这时候实体层(Entity)来了。(注:当然,实体层的作用不止这些)

 img

Entity(实体层):它不属于三层中的任何一层,但是它是必不可少的一层。

Entity在三层架构中的作用:

  1. 实现面向对象思想中的"封装";
  2. 贯穿于三层,在三层之间传递数据;(注:确切的说实体层贯穿于三层之间,来连接三层)
  3. 对于初学者来说,可以这样理解:每张数据表对应一个实体,即每个数据表中的字段对应实体中的属性(注:当然,事实上不是这样。为什么?1>,可能我们需要的实体在数据表对应的实体中并不存在;2>,我们完全可以将所有数据表中的所有字段都放在一个实体里)
  4. 每一层(UI—>BLL—>DAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。

为什么使用三层?


使用三层架构的目的:解耦!!!

任何一层发生变化都不会影响到另外一层!!!

img

 

综上,三层架构的优势:

1,结构清晰、耦合度低
2,可维护性高,可扩展性高
3,利于开发任务同步进行, 容易适应需求变化


MVC与三层架构的关系

        MVC与三层架构很相似,但它们并不一样。如果以三层架构为背景,那么MVC的三个部分分别对应的是什么?

        三层架构中的View层简单的说就是跟用户发生直接关系的层,MVC中的V和C就是这样的存在,所以MVC中的V和C均属于三层架构的View层。同时,我们知道MVC中的M(Model)包括了数据承载Bean和业务处理Bean,其中业务处理Bean分为Service或Dao对象,分别对应业务逻辑处理和数据库操作,相应的,它们对应的是三层架构中的Service层和Dao层。故,它们的关系如下图所示:

img

 

所以,三层架构与mvc还是有区别的。

img

 MVC是表现层的一个设计模型

SSM与三层架构的关系

SSM即SpringMVC、Spring、Mybatis三个框架。它们在三层架构中所处的位置是不同的,即它们在三层架构中的功能各不相同,各司其职。

  • SpringMVC:作为View层的实现者,完成用户的请求接收功能。SpringMVC的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应。
  • MyBatis:作为 Dao层的实现者,完成对数据库的增、删、改、查功能。
  • Spring:以整个应用大管家的身份出现。整个应用中所有的Bean的生命周期行为,均由Spring来管理。即整个应用中所有对象的创建、初始化、销毁,及对象间关联关系的维护,均由Spring进行管理。

img

 

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值