什么是MVC三层架构?「建议收藏」

什么是MVC三层架构?「建议收藏」1.1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。 Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:ValueObj

大家好,又见面了,我是你们的朋友全栈君。

1.1、什么是MVC

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。

  • 是将业务逻辑、数据、显示分离的方法来组织代码。

  • MVC主要作用是降低了视图与业务逻辑间的双向偶合

  • MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

最典型的MVC就是JSP + servlet + javabean的模式。

什么是MVC三层架构?「建议收藏」

1.2、Model1时代

  • 在web早期的开发中,通常采用的都是Model1。

  • Model1中,主要分为两层,视图层和模型层。

什么是MVC三层架构?「建议收藏」

Model1优点:架构简单,比较适合小型项目开发;

Model1缺点:JSP职责不单一,职责过重,不便于维护;

1.3、Model2时代

Model2把一个项目分成三部分,包括视图、控制、模型。

什么是MVC三层架构?「建议收藏」

  1. 用户发请求

  2. Servlet接收请求数据,并调用对应的业务逻辑方法

  3. 业务处理完毕,返回更新后的数据给servlet

  4. servlet转向到JSP,由JSP来渲染页面

  5. 响应给前端更新后的页面

职责分析:

Controller:控制器

  1. 取得表单数据

  2. 调用业务逻辑

  3. 转向指定的页面

Model:模型

  1. 业务逻辑

  2. 保存数据的状态

View:视图

  1. 显示页面

Model2这样不仅提高的代码的复用率与项目的扩展性,且大大降低了项目的维护成本。Model 1模式的实现比较简单,适用于快速开发小规模项目,Model1中JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。Model2消除了Model1的缺点。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153092.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java测试类的创建方法_java编写一个类

    java测试类的创建方法_java编写一个类JUnit基础及第一个单元测试实例(JUnit3.8)JUnit基础及第一个单元测试实例(JUnit3.8) 单元测试  单元测试(unittesting) ,是指对软件中的最小可测试单元进行检查和验证。  单元测试不是为了证明您是对的,而是为了证明您没有错误。  单元测试主要是用来判断程序的执行结果与自己期望的结果是否一致。  关键是

    2022年10月17日
    2
  • 【python】在pycharm更换python版本

    【python】在pycharm更换python版本记录一下 https www likecs com show 203991917 html

    2025年11月30日
    1
  • 局域网服务器传输大文件方案,局域网快速传输大文件【操作方案】

    局域网服务器传输大文件方案,局域网快速传输大文件【操作方案】很多小伙伴都遇到过局域网快速传输大文件的困惑吧,一些朋友看过网上零散的局域网快速传输大文件的处理方法,并没有完完全全明白局域网快速传输大文件是如何解决的,今天小编准备了简单的解决办法,只需要按照1:首先需要传递文件的两台电脑之间都需要下载安装一个工具软件飞秋(feiQ),其是一款局域网聊天传送文件的即时通讯软件,如下图所示:2:两台电脑之间通过一根网线连接在一起(通过网线水晶头插入网孔的方式),如…

    2022年5月5日
    155
  • 第12章方差分析介绍课_t检验中的第一类错误是指

    第12章方差分析介绍课_t检验中的第一类错误是指方差分析用以比较两组及以上处理之间的平均数差异的情况因素:方差分析中,用于分派组别的变量水平:因素的个别情形或个别值方差分析与t检验比较(为什么使用方差分析而不用t检验多次比较均值差异):检验α水平:做一个单独的假设检验时犯第一类错误的可能性。实验α水平:当一个实验包括多个不同的假设检验时,实验中全部独立的检验所犯第一类错误积累后的犯错总概率。通常,实验α水平比任何一个单独的检验的α值大。方差分析可在一次实验中同时进行三个及以上均值差异的比较,避免了实验α的膨胀。方差分析…

    2022年10月10日
    2
  • 分子模拟软件amber_Gromacs联用GAFF力场处理水溶剂下小分子动力学

    分子模拟软件amber_Gromacs联用GAFF力场处理水溶剂下小分子动力学与GROMACS偏重生物大分子模拟的力场不同,AMBER支持很多方便处理有机小分子的力场(详见http://sobereva.com/115),如GAFF力场,简单而又有不错的精度,适合处理有机小分子;这里将介绍用Gaussian计算RESP电荷,交由Amber生成GAFF力场下的拓扑文件,最后用GROMACS模拟的过程。软件版本:AmberTools18,Gromacs2019-beta-1…

    2022年5月25日
    100
  • hash 哈希算法_哈希一致性算法

    hash 哈希算法_哈希一致性算法文章目录一、哈希函数定义特点应用常见哈希算法二、murmurhash定义特点应用介绍三、MurmurHash使用四、性能测试MurmurHash:(multiplyandrotate)and(multiplyandrotate)Hash,乘法和旋转的hash算法。一、哈希函数定义散列函数(英语:Hashfunction)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合

    2022年10月18日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号