1.MVC设计模式
1.1 阐述
-
MVC 架构模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。设计目的是目的是将 M 和 V 的实现代码分离,是一种软件设计规范。
-
控制层(Controller):用户向服务器发起请求,在服务区端这一层用来获取请求后如何解析用户的输入,并交给模型层(业务层)执行相关处理逻辑,将处理后的模型数据,跳转至正确的视图显示反馈结果。
-
数据模型层(Model):在请求的过程中,用户的信息被封装在 User 实体类中,包含数据和行为,负责数据逻辑(业务规则)的处理和实现数据操作(即在数据库中存取数据)。
-
视图层(View):在请求显示阶段,跳转的结果网页。包括数据展示、用户交互、数据验证、界面设计
像这样,控制层负责前台与后台的交互,数据模型层封装用户的输入/输出数据,视图层选择恰当的视图来显示最终的执行结果,这样的层次分明的软件开发和处理流程被称为 MVC 模式。
- 在之前的 利用Servlet 进行Web开发时,JavaBean +service相当于 Model,(控制器底层出来vue)Servlet 相当于 Controller,JSP 相当于 View。
VO视图层,Dto数据传输层概念,将pojo实体细分了,前端传输的字段不一定要用实体接收,
vo:简化版实体类。比如登录只需要取用户名密码,就封装一个两个字段的实体类。
- 我们通过 MVC 设计模式可以打造出一个松耦合+高可重用性+高可适用性的完美架构
1.2 历史
- model1模式:SP+JavaBean 中 JSP 用于处理用户请求,JavaBean 用于封装和处理数据。该模式只有视图和模型,一般把控制器的功能交给视图来实现,适合业务流程比较简单的 Web 程序。
JSP 从 HTTP Request(请求)中获得所需的数据,并进行业务逻辑的处理,利用JSP的脚本标签<% …%>的可以编写java代码
然后JSP 将结果通过 HTTP Response(响应)返回给浏览器。从中可见,JSP+JavaBean 模式在一定程度上实现了 MVC,即 JSP 将控制层和视图合二为一,JavaBean 为模型层。
JSP+JavaBean 模式中 JSP 身兼数职,既要负责视图层的数据显示,又要负责业务流程的控制,结构较为混乱,并且也不是我们所希望的松耦合架构模式,所以当业务流程复杂的时候并不推荐使用。
-
model2模式:Servlet+JSP+JavaBean 中 Servlet 用于处理用户请求,JSP 用于数据显示,JavaBean 用于数据封装,适合复杂的 Web 程序。
-
Servlet+JSP+JavaBean 中 Servlet 用于处理用户请求,JSP 用于数据显示,JavaBean 用于数据封装,适合复杂的 Web 程序。
-
相比model1模式来说,Servlet+JSP+JavaBean 模式将控制层单独划分出来负责业务流程的控制,接收请求,调用业务处理逻辑,并将处理后的数据返回视图层(JSP)进行界面数据展示。
1.3 MVC优缺点
- 优点
- 多视图共享一个模型,大大提高了代码的可重用性
- MVC 三个模块相互独立,松耦合架构,降低了视图和业务逻辑的双向耦合
- 控制器提高了应用程序的灵活性和可配置性
- 利于团队开发,可以构建复杂的项目
- 有利于软件工程化管理
- 缺点
- 原理复杂
- 增加了系统结构和实现的复杂性
- 视图对模型数据的低效率访问
- MVC 不适合中小型项目,高成本将 MVC 应用到规模并不是很大的应用程序是不合适的,所以对于 MVC 设计模式的使用要根据具体的应用场景来决定。
- 一般公司的项目架构是演进的。
如:alibaba: php (个人页面网站,承载并发量低)
业务起来后,用户并发数上来后:java
去IOE:mysql-可拔插组件化,数据引擎可以随时切换–mysql底层优化器对sql优化–>alisql(将优化这一层优化掉了),aliredis
单机->分布式、微服务…
- 演进:MVP(是一个过渡) MVVM:M V VM(vue前后端分离的核心、双向绑定)
下一篇:SpringMVC-02-web servlet
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123901.html