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

2022-07-22 22:34:38  浏览:333  作者:管理员
  • mvc架构模式的原理(MVC架构系统设计方法)

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • Q Q 号:

  • 手机号:

  • 浏览量:

    333


【货源详情】


说起MVC,感觉大家可以每两块钱聊天。 今天也简单说一下吧。 并以Java Web开发为例,简要介绍了应如何对项目进行分层。

MVC之前

在Web开发初期,Sun公司发表JSP技术后,当时极大地震撼了整个行业。 微软之后推出的ASP也是面向JSP的反制手段。 在早期使用JSP开发的web APP应用程序中,由于其强大的特性,JSP使用以Java语言编写的代码块作为脚本。 因此,JSP文件是一个独立的模块,可以自主执行所有任务,其他动态网站技术(如ASP、PHP等)也是如此。 负责处理业务逻辑、控制页面跳转、向用户显示页面等。

在上图的模型中,“完整堆栈”的开发似乎变得相当简单。 用JSP开发就可以了。 但是,这样做的一个明显弊端是,JSP页面的功能太复杂,绑定性太强,数据、业务逻辑和流程控件都混合在一起,使得程序难以进行后续维护和修改。

为了解决这些问题,SUN公司提供了一种由JSP开发的体系结构模型,称为JSP Model1。 该模型采用JSP JavaBean (将万物抽象为对象,提供若干属性和对应的getter、setter方法)技术,将页面显示与商务逻辑分离。

如上图所示,JSP Model1将封装和处理数据的业务逻辑传递给JavaBean组件,JSP只需接收用户的请求并调用JavaBean组件来响应用户的请求该设计在一定程度上实现了数据、业务逻辑、页面展示的分离,在一定程度上实现了程序开发的模块化(分层),降低了程序之间的耦合性,有效地降低了代码维护、修改成本。

MVC设计模式

MVC设计是[Xerox PARC] (

33559 baike.Baidu.com/item/xerox parc ) (施乐帕克,研究中心)在20世纪80年代编程语言Smalltalk-80发明的软件设计模型中,按照功能模块划分

MVC设计模式将APP应用程序分为三个核心模块:“模型”、“视图”和“控制器”。 各模块的作用如下。

模型:负责管理APP应用中的业务数据、定义访问控制以及如何修改数据。

视图(View ) :负责与用户交互,可以从模型中检索数据并呈现给用户,然后将用户的请求传递给控制器进行处理。

控制器(Controller ) :用于处理APP的用户交互的部分,可以从视图中检索数据、控制用户输入以及向模型发送数据。

MVC模式广泛使用的是Web开发。 简要说明在Java Web开发中,APP应用程序应该如何划分模块。 控制器层是servlet,视图层是JSP,模型层是JavaBean。 图中的步骤1、2、3、4是用户进行请求时的处理流程。

三层架构

三层体系结构(3-tier architecture )通常是整个业务APP应用程序的表示层(USL )、业务逻辑层(Business Logic Layer )、业务逻辑层(BLL )、数据访问层)

表示层:又称表现层UI,位于三层构架的最上层,与用户直接接触,主要是用户浏览的页面,其主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到BLL系统中进行数据处理,处理后会将处理结果反馈到表示层中;

业务逻辑层:中间层,对具体问题进行逻辑判断与执行操作,当接收到表现层UI的用户指令后,会连接数据访问层,将数据库访问层的增删改查进行组装,并将处理结果返回给表示层;

数据库访问层:主要用于操作数据库中的数据,实现数据的增删改查操作,并将处理结果返回给业务逻辑层。

三层体系结构是一个比MVC更宏观的解决方案,MVC相当于三层体系结构的表示层。 总之,目的是对APP应用进行分层,实现高聚集、低耦合的目标,将程序划分为不同的模块,使开发和维护更加清晰。

项目分层

在此,建议对《阿里巴巴Java开发手册》的工程结构中约定的APP应用进行分层。

图中的缺省上层依赖于下层,箭头关系表示可以直接依赖。 例如,开放接口层可以依赖于Web层,也可以直接依赖于服务层。 让我们简单看看每一层的定义。

终端层:执行每个终端的模板渲染并执行显示的层。 目前主要是velocity渲染、JS渲染、JSP渲染、移动端展示等;

开放接口层:可以直接封装服务方法并暴露在RPC接口中; 通过Web封装在http接口中进行网关安全控制、流量控制等;

Web层:主要是访问控制的传输、各类基本参数的检查、或者不复用业务的简单处理等

服务层:比较具体的业务逻辑服务层;

Manager层:通用业务处理层;

1 )对第三方平台封装层,预处理返回结果,转换异常信息;

2 )对服务层公共能力的下沉,如缓存计划、中间件公共处理等

3 )与DAO层交互,并且复用多个DAO的组合;

DAO层:与基础MySQL、Oracle、Hbase等交换数据的数据访问层。

外部接口或第三方平台:包括其他部门的RPC开放接口、基础平台和其他公司的HTTP接口。

在我们的实际项目中,除非业务特别复杂,否则不需要设置web层和manager层。 因此,建议分层为以下:

总结

其实很多学生可能会有些怀疑,由于ajax的出现,很多项目现在开始实行前后端分离的做法。 特别是目前,优秀的前端框架层出不穷。 例如,Vue、React、AngularJS等三层体系结构和我们上面推荐的分层似乎不适用。 其实不然。 您可以将页面划分为终端显示层,并将Java代码划分为Controller services dao util model,无论项目是否前后分离。

文章到此结束。 我希望正文对你有帮助。 另外,我希望我们的项目都结构清晰,使用分层方式降低代码之间的耦合性,使代码更容易维护和修改。

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部