对三层架构和MVC的浅认识

三层架构是为了程序代码之间解耦所使用的一种架构模式,区分层次的目的即为了“高内聚,低耦合”的思想。 

三层分为表示层、业务逻辑层和数据访问层,三层之间相互影响却又不相互牵制,比如你要修改表示层的内容,这时候,你不需要去考虑其他两层的代码实现,只需要把表示层的做好就行,需要用到数据了,就去业务逻辑层进行调用,当业务逻辑层收到来自表示层的请求,它就会按照设定好的流程去数据访问层拿数据,拿到之后再转给表示层。举个例子来解释:

表示层相当于服务员,顾客点了什么菜,菜上给第几桌,这些是它的责任,而业务逻辑层相当于厨师,服务员送上来的菜单 上的菜都是厨师(也就是业务逻辑层)做的,数据访问层呢,则是厨师的小工,负责切菜,洗菜等和原材料打交道的工作。

相互之间最终形成了这样的关系:小工的工作要满足厨师的要求,而厨师则满足服务员的要求,而服务员则满足顾客的要求。下面找了其他博客上的一张图来详细说明他们的关系(表现层即表示层):

下面这张图具体说明了再Web中三层设计实现的逻辑过程:(原图链接:https://my.oschina.net/u/3055497/blog/1819641)

对三层架构和MVC的浅认识_第1张图片

MVC设计模式

本来想自己总结MVC的,但写了都又删了,总感觉不到位,因此转发一下他人的文章,大家一起学习。

原文链接:https://my.oschina.net/u/2293432/blog/983119

MVC是指:Model模型、View视图、Controller控件器。

View:视图,为用户提供使用界面,与用户直接进行交互。

Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门承载业务数据的,如Student、User等。而业务处理Bean则是指Service或Dao对象,专门用于处理用户提交请求的。

Controller:控制器,用于将用户请求转发给相应的Model进行处理,并处理Model的计算结果向用户提供相应响应。 MVC架构程序的工作流程是这样的:

(1)用户通过View页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等。

(2)服务端Controller控制器接收到请求后对请求进行解析,找到相应 的Model对用户请求进行处理。

(3)Model处理后,将处理结果再交给Controller。

(4)Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给客户端。

MVC 三、关系

1、MVC与三层架构的关系

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

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

2、SSM与三层架构的关系

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

SpringMVC:作为View层的实现者,完成用户的请求接收功能。SpringMVC的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应。

MyBatis:作为 Dao层的实现者,完成对数据库的增、删、改、查功能。

Spring:以整个应用大管家的身份出现。整个应用中所有的Bean的生命周期行为,均由Spring来管理。即整个应用中所有对象的创建、初始化、销毁,及对象间关联关系的维护,均由Spring进行管理。

如有侵权,请联系博主。

你可能感兴趣的:(设计模式,MVC,三层架构)