MVC 模式及其优缺点

2023-05-16

一、MVC 原理

MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维

护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。

1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块和数据模块。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性

2、视图(view) 用户与之交互的界面、在 web 中视图一般由 jsp,html 组成

3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的作用

二、MVC 的优点

1、降低代码耦合性。在 MVC 模式中,三个层各施其职,所以如果一旦哪一层的需求发

生了变化,就只需要更改相应的层中的代码而不会影响到其他层中的代码。

2、有利于分工合作。在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发

中的分工。网页设计人员可进行开发视图层中的 JSP,而对业务熟悉的人员可开发业务层,

而其他开发人员可开发控制层。

3、有利于组件的重用。如控制层可独立成一个能用的组件,表示层也可做成通用的操作

界面。可以为一个模型在运行时同时建立和使用多个视图。

三、MVC 的不足之处

1、增加了系统结构和实现的复杂性。对于简单的界面,严格遵循 MVC,使模型、视图

与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

2、视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部

件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立

重用。

3、视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才

能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

4、目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应 MVC 需要和

建立分离的部件的代价是很高的,从而造成 MVC 使用的困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 模式及其优缺点 的相关文章

  • 手写Spring框架(三)

    这部分目标是MVC 主要完成3个重要组件 HandlerMapping 保存URL映射关系 HandlerAdapter 动态参数适配器 ViewResolvers 视图转换器 模板引擎 SpringMVC核心组件执行流程 相对应的 用以下
  • J2EE之自定义MVC框架知识(中篇)

    J2EE之自定义MVC框架知识 中篇 文章目录 J2EE之自定义MVC框架知识 中篇 前言 1 优化中央控制器中的action容器 使其加载变成可配置的 1 1 编写 xml文件 config xml 1 2 导入XML建模相关的类 Act
  • 面试官:谈谈过滤器和拦截器的区别?

    一 拦截器和过滤器的区别 1 拦截器 Interceptor 只对action请求起作用 即对外访问路径 而过滤器 Filter 则可以对几乎所有的请求都能起作用 包括css js等资源文件 2 拦截器 Interceptor 是在Serv
  • Spring Web MVC框架(六) 异常处理

    Spring Web MVC对异常处理有着完善的支持 我们可以捕获控制器中抛出的任何异常 然后按照异常类型将异常信息映射到某个视图文件 向用户显示对应的信息 ExceptionHandler 最简单的办法就是使用 ExceptionHand
  • 在Spring中配置多个View解析器

    1 简介 在Spring中 提供了View Resolver来使用模型中可用的数据来解析视图 而无需与JSP Velocity或Thymeleaf等View技术紧密绑定 Spring可以根据需要轻松灵活地配置一个或多个View Resolv
  • qml基础学习 模型视图(一)

    文章目录 一 理解qml模型和视图 二 效果展示 三 源码分析 1 GridView增删 2 列表 3 卡牌效果 四 相关文章 一 理解qml模型和视图 qt的发展是迅速的 虽然在每一个release版本中或多或少都有bug 但是作为一个庞
  • spring mvc中log4j的配置与使用

    原文地址 http rockelixir iteye com blog 1902352 如果使用spring插件创建一个spring template project 它会默认带log4j 只要改下log4j的配置就可以使用了 如果自己创建
  • MVC在Web系统中的模式与应用

    摘要 面向对象的设计模式是经验的总结 MVC思想是原先用于构建用户界面的 这篇文章主要论述了如何在新的Web应用领域中使用设计模式和MVC架构 文章首先介绍了设计模式的概念和特点 以及MVC架构的设计思想 并分析了MVC架构中包含的几种主要
  • 关于ASP.NET MVC与.NET CORE 的区别--小结

    简述关于ASP NET MVC与 NET CORE的区别 1 关于ASP NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字 我相信许多学ASP NET开发人员开始接触MVC应该也和我一样产生很多为什么 也会误认为认为MVC
  • MVC项目案例

    MVC项目 1 需求 访问链接 http localhost 8080 car get 得到JSON数据 name 保时捷 color 红色 price 641000 0 2 项目结构 cn tedu 放启动类 存子包 cn tedu se
  • springmvc框架

    1 什么是MVC MVC就是一个分层架构模式 M即model模型是指模型表示业务规则 在MVC的三个部件中 模型拥有最多的处理任务 被模型返回的数据是中立的 模型与数据格式无关 这样一个模型能为多个视图提供数据 由于应用于模型的代码只需写一
  • ABP 框架官网学习资料

    ABP是 ASP NET Boilerplate Project ASP NET样板项目 的简称 新思想 新技术 新架构 更好更快的开发现代ASP NET应用程序 ASP NET Boilerplate是一个用最佳实践和流行技术开发现代WE
  • 软件系统架构有哪几种?

    互联网飞速发展的当下 有一种极其重要的门类也随之应运而生 那就是软件工程 而软件工程中 又有非常重要的一环 那就是软件架构 这也是各个互联网公司无论大小都必备的一个系统基础 那么什么是软件架构呢 事实上 架构在软件发明时的 N 多年以前 就
  • 【JavaWeb】Thymeleaf的简介与使用

    Thmeleaf MVC 为什么需要MVC 我们之前在书城项目第二阶段做登录的时候 曾经提出过优化登录失败后的处理 虽然说可以实现在登录失败之后跳转回到登录页面 并且展示失败信息 但是代码实在是太恶心了 根本没法维护 所以我们需要将视图展示
  • SSM框架-小区物业管理系统(附源码和运行视频)

    文章目录 系列文章目录 前言 一 开发框架与业务需求 1 开发框架 2 开发环境 3 整体业务 二 项目结构以及页面展示 1 注册 登录页展示 2 首页 小区管理 3 房产 业主信息管理 4 停车位 服务管理 三 ssm框架配置以及代码包级
  • 利用MVC做一个 常见的管理系统

    登陆的部分 gt 数据库 gt 表 admin id name pass regtime 表与类的映射关系 基于面向对象 转换成对象的操作 gt 登陆页面
  • angular中的全局方法和指令介绍1

    复习并总结Angular开发流程 0 下载angular 暴力angular 找到js拖拽过来 npm下载 1 引入 2 在要控制的标签上写上ng app 3 写controller 告诉angular哪部分dom结构有哪个controll
  • 【QT学习】实现MVC框架的简易封装(一文读懂)

    文章目录 前言 一 MVC框架简介 1 核心部件 2 使用目的 3 MVC优点 二 具体封装步骤 1 文件管理 2 创建模型 3 创建控制器 4 MVC实现 用户登录验证为例 总结 前言 MVC Model View Controller
  • Spring MVC下篇

    书接上回Spring MVC上篇 前面介绍了Spring MVC的服务器如何获得用户的请求 那么今天就来介绍一下服务器如何将响应返回给客户端 目录 3 服务器将结果返回给用户 前端 3 1 返回一个静态页面 3 2 返回 text html
  • 基本的Java的MVC入门案例

    概念 MVC Model View Controller 模型 视图 控制器 他是一种专门设计web程序的模式 高内聚 低耦合 高内聚 专人干专事 低耦合 让类与类之间的关系不能太紧密 模型 Model 是应用程序中与处理应用程序数据逻辑的

随机推荐

  • 2014百度校招开发测试工程师笔试题

    时间 xff1a 2013 9 28 地点 xff1a 深圳 职位 xff1a 开发测试工程师
  • Spark Streaming + Spark SQL 实现配置化ETL流程

    Spark Streaming 非常适合ETL 但是其开发模块化程度不高 xff0c 所以这里提供了一套方案 xff0c 该方案提供了新的API用于开发Spark Streaming程序 xff0c 同时也实现了模块化 xff0c 配置化
  • 整体了解HADOOP框架及一些开源项目

    Hadoop框架中 xff0c 有很多优秀的工具 xff0c 帮助我们解决工作中的问题 Hadoop的位置 从上图可以看出 xff0c 越往右 xff0c 实时性越高 xff0c 越往上 xff0c 涉及到算法等越多 越往上 xff0c 越
  • Kafka简介

    Kafka简介 在当前的大数据时代 xff0c 第一个挑战是海量数据的收集 xff0c 另一个就是这些数据的分析 数据分析的类型通常有用户行为数据 应用性能跟踪数据 活动数据日志 事件消息等 消息发布机制用于连接各种应用并在它们之间路由消息
  • Flume入门笔记------架构以及应用介绍

    在具体介绍本文内容之前 xff0c 先给大家看一下Hadoop业务的整体开发流程 xff1a 从Hadoop的业务开发流程图中可以看出 xff0c 在大数据的业务处理过程中 xff0c 对于数据的采集是十分重要的一步 xff0c 也是不可避
  • 分布式服务框架dubbo原理解析

    alibaba有好几个分布式框架 xff0c 主要有 xff1a 进行远程调用 类似于RMI的这种远程调用 的 dubbo hsf xff0c jms消息服务 napoli notify xff0c KV数据库 tair 等 这个框架 工具
  • Android Studio Gradle project Sync Failed解决方法

    1 查看项目使用的gradle和本地gradle是否一致 本地gradle一般目录在C Users admin gradle文件夹下面 项目使用的gradle在项目的gradle wrapper properties文件中 distribu
  • Docker not running on windows 10 error: Hardware assisted virtualization and data execution protecti

    Docker not running on windows 10 error Hardware assisted virtualization and data execution protection must be enabled in
  • [高通SDM450][Android9.0]user版本uartlog常开

    文章目录 开发平台基本信息问题描述解决方法user版本调试串口可输入user版本uartlog常开 开发平台基本信息 芯片 SDM450 版本 Android 9 0 kernel msm 4 9 问题描述 user版本调试串口默认只输入调
  • Ubuntu 7.04 乱码解决

    一 解决XMMS乱码问题 菜单乱码的解决 1 sudo ln s etc gtk gtkrc zh CN etc gtk gtkrc zh CN utf 8 2 sudo gedit etc gtk gtkrc zh CN utf 8 填写
  • yii2连接websocket服务实现服务端主动推送消息给客户端

    上一篇写的是websocket的服务 xff0c 这一篇写写调用服务和web端调用 xff0c 接收消息部分 1 调用websocket服务 主动推送消息的方法 lt php namespace common services use co
  • 生产者消费者算法

    span class hljs comment include lt unistd h gt span span class hljs comment include lt stdlib h gt span span class hljs
  • MongoDB ODM 框架MongoMongo-简化你的数据存储

    MongMongo是一个用Java写的ODM框架 xff0c 使得对MongoDB的操作更加便捷 MongoMongo努力为Java开发者提供类似于ActiveORM 或者 Hibernate的操作API 并且保留了MongoDB的sche
  • archlinux安装deb软件步骤

    archlinux安装deb软件步骤 步骤 步骤 安装yay安装debtap安装转换出的pkg软件 注意事项 xff1a 安装yay问题解决 xff1a go语言相关安装debtap问题解决 xff1a git代理设置
  • 第六章 正则,BeautifulSoup,xpath

    文章目录 1 正则1 1 提取字符串1 2 替换1 3 搜索 2 beautifulsoup2 1 各种解析器2 2 提取方式2 3 find方法2 3 1 find2 3 2 find all2 3 3 通过id和类型精确定位2 3 3
  • spring如何获取bean的6种方法,你知道几个?

    spring获取bean的6种方法 Bean工厂 xff08 com springframework beans factory BeanFactory xff09 是Spring框架最核心的接口 xff0c 它提供了高级IoC的配置机制
  • c语言中while与do while循环的主要区别是什么

    while循环与do while循环的区别如下 xff1a 1 循环结构的表达式不同 while循环结构的表达式为 xff1a while xff08 表达式 xff09 循环体 xff1b do while循环结构的表达式为 xff1a
  • MVC设计模式

    MVC的全名是Model View Controller xff0c 是模型 Model xff0d 视图 view xff0d 控制器 controller 的缩写 xff0c 是一种设计模式 它是用一种业务逻辑 数据与界面显示分离的方法
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的