mvc架构模式的原理 MVC架构系统设计方法

说起MVC,感觉大家都能唠个两块钱的 。今天呢,我们也来简单的聊一聊,并以Java Web开发为例,简单的讲解项目应当如何分层 。
MVC之前在Web开发早期,当Sun公司推出了JSP技术后,在当时是极大的震撼了整个行业,包括微软后面推出的ASP也是针对JSP推出的反制手段 。在早期使用JSP开发的Web应用中,JSP因为其强大的特性,以Java语言写的代码块作为脚本,因此一个JSP文件是一个独立的、能自主完成所有任务的模块(其他的动态网站技术比如ASP、PHP也是如此),它可以负责处理业务逻辑、控制页面跳转和向用户展示页面等 。

mvc架构模式的原理 MVC架构系统设计方法


在上图这个模式中,”全栈”开发似乎变得简单了许多,只需要在JSP中开发就可以了 。但这么做的一个明显的弊端,就是JSP页面中的功能过于繁杂、耦合性太高,数据、业务逻辑、流程控制全都混杂在一起,使得程序后续难以维护和修改 。
?为了解决上述问题,SUN公司提供了一种JSP开发的架构模型,我们可以称之为JSP Model1 。在这个模型中,采用JSP+JavaBean(将万物抽象成对象,提供一些属性和对应的getter、setter方法)技术,将页面的显示和业务逻辑分开 。

mvc架构模式的原理 MVC架构系统设计方法


?从上图中,我们可以看到,JSP Model1将封装数据和处理数据的业务逻辑交给了JavaBean组件,JSP只负责接收用户的请求和调用JavaBean组件来响应用户的请求 。这种设计在一定程度上实现了数据、业务逻辑、页面展示的分离,在一定程度上实现了程序开发的模块化(分层),降低了程序间的耦合性,让代码的维护、修改成本有效的降低 。
MVC设计模式?MVC设计是由[Xerox PARC](
https://baike.baidu.com/item/Xerox PARC)(施乐帕克,研究中心)在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,提供了一种按照功能模块划分的指导思想 。
?MVC设计模式将应用程序分为三个核心模块:模型(Model)、视图(View)、控制器(Controller) 。每个模块的作用如下所示:
  • 模型(Model):负责管理应用程序的业务数据、定义访问控制以及修改这些数据的方法 。
  • 视图(View):负责与用户进行交互,它从模型中获取数据向用户展示,同时也能将用户请求传递给控制器处理 。
  • 控制器(Controller):负责应用程序中处理用户交互的部分,可以从视图中取数据,控制用户输入,并向模型发送数据 。

mvc架构模式的原理 MVC架构系统设计方法


?MVC模式广泛的应用的于Web开发中,我们以Java Web开发来简单说明应用程序应该怎么样划分模块:Controller层为Servlet,View层为JSP,Model层为JavaBean 。图中的步骤1、2、3、4是用户进行请求时的处理流程 。

mvc架构模式的原理 MVC架构系统设计方法


三层架构?三层架构(3-tier architecture)通常是将整个业务应用划分为:表示层(User show layer, USL)、业务逻辑层(Business Logic Layer, BLL)、数据访问层(Data access layer, DAL) 。其中每层的作用如下:
表示层:又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是用户浏览的页面,其主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到BLL系统中进行数据处理,处理后会将处理结果反馈到表示层中;业务逻辑层:中间层,对具体问题进行逻辑判断与执行操作,当接收到表现层UI的用户指令后,会连接数据访问层,将数据库访问层的增删改查进行组装,并将处理结果返回给表示层;数据库访问层:主要用于操作数据库中的数据,实现数据的增删改查操作,并将处理结果返回给业务逻辑层 。?三层架构相比较于MVC是更宏观的解决方案,MVC相当于对三层架构中的表示层 。不管这两个的哪一种,都是对应用程序进行分层,其目的就是实现高内聚、低耦合的目标,将程序分成不同的模块,让开发和维护变得更清晰明了 。

推荐阅读