Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >MVC框架理解及优缺点

MVC框架理解及优缺点

作者头像
全栈程序员站长
发布于 2022-07-08 02:39:52
发布于 2022-07-08 02:39:52
2.2K0
举报

MVC:模型(Model)、视图(View)、控制器(Control)

流程如下:

首先是视图向控制器发送请求,控制器再将业务请求发送给模型,

然后模型处理请求业务并把结果返回给控制器,控制器根据结果再选择

视图。

MVC的优点:

1、低耦合性:

视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和

控制器代码。同样,一个应用的业务流程或者业务规则的改变只需要改动

MVC的模型层即可,因为模型与控制器和视图相分离,所以很容易改变应用

程序的数据层和业务规则。

2、高重用性和可适用性

MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它

包括任何WEB(HTTP)浏览器或者无线浏览器(wap),例如:例如,很多数

据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令

是改变视图层的实现方式,而控制层和模型层无需做任何改变。

3、较低的生命周期成本

MVC使降低开发和维护用户接口的技术含量成为可能。

4、快速的部署

使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)

集中 精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表

现形式上

5、可维护性

分离视图层和业务层也使得WEB应用更便于维护和修改

6、有利于软件工程化管理

由于不同的层各司其职,没一层不同的应用具有某些相同的特征,有利于通过

工程化、工具化管理程序代码。

MVC的缺点:

1、增加了系统结构和实现的复杂性

2、视图与控制器间的过于紧密的连接

3、视图对模型数据的低效率访问

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

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

    缺点:

    小型项目,反而会降低开发效率,虽然层与层之间相互分离,但之间关联性太强,没有做到独立的重用。增加了系统结构和实现的复杂性。视图对模型数据的低效率访问。

================以下转载=============================

一、MVC原理

百度百科MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 另:MVC是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性 2、视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成 3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用

二、MVC的优点 1、可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。 2、视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。 3、模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。 4、潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。

三、MVC的不足之处 1、增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 2、视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。 3、视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

4、目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC使用的困难。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
框架介绍
  此外,Django还有一个URL分发器。它的作用是将一个个URL的页面请求分别发给不同的Views处理,Views再调用相应的Model和Template。
全栈程序员站长
2022/07/21
5940
框架介绍
『设计模式』Web程序开发最基本的编程模式--MVC编程模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中
风骨散人Chiam
2020/10/28
7080
MVC设计模式
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
三哥
2018/07/31
8700
MVC设计模式
简单Web应用框架设计
对于web应用,我们可以简单将其抽象归纳为如图中所示几个部分:客户端(Client)、请求处理(Router)、业务处理(Controller)、外部调用(eAPI)、视图引擎(View)、服务引擎(Service)、数据持久(DAO)和数据库文件系统。
全栈程序员站长
2022/06/30
7720
简单Web应用框架设计
Spring MVC框架浅析
概述: 是一种开发结构合理、能使前后端分离、流程控制逻辑、业务逻辑调用与展示逻辑分离,实现高内聚,低耦合的设计模式。
关忆北.
2020/10/15
7540
Spring MVC框架浅析
理解mvvm和mvc
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。 代表框架:AngularJS <br/>
心念
2023/01/11
7440
MVC介绍
mvc原则上model是不与view层交互的吧,model广义上讲不是单单的数据封装而是承载了明确的业务逻辑处理,当然可能只是简单的网络或数据库存取。controller负责接受用户交互指令,后对model进行访问,之后组装成view,相当于model与view之前的桥梁所以称之为控制器。
PM吃瓜
2019/08/13
1.1K0
php的mvc框架原理及常见框架学习
现在大部分公司开发都会基于一些成熟的开源框架,比如Laravel、ThinkPHP、Codelgniter、yii、yaf。市面上开源框架有几十种,
老雷PHP全栈开发
2020/07/02
1.6K0
Java|Spring+SpringMVC+MyBatis框架科普
本文要讲的内容主要包括三部分: 1、SpringIoC、Spring MVC、Mybatis三大框架在项目中的协作; 2、Spring IoC框架讲解; 3、Spring MVC框架讲解。
黄小怪
2018/05/21
1.2K0
mvc 和 mvvm 的区别和应用场景?
MVC的思想:Controller负责将Model的数据用View显示出来,换句话说就是在Controller里面把Model的数据赋值给View。
青梅煮码
2023/01/16
6330
mvc 和 mvvm 的区别和应用场景?
MVC框架详解(资源整理)
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。
全栈程序员站长
2022/09/08
1.8K0
MVC框架详解(资源整理)
MVC、MVP、MVVM 架构的特点与区别
   前人种树,后人乘凉。关于MVC、MVP、MVVM这几种架构方式的理解,前辈们写了很多的解答,我结合几篇好文,总结了以下一点点内容。
老猫-Leo
2023/12/11
6483
MVC、MVP、MVVM 架构的特点与区别
JavaWeb基础之MVC设计模式
写了几天代码,然后对之前学到的知识,进行反思,写出来放在QQ空间上和博客上,目的是互相学习,然后希望可以得到编程高手的补充!这是我转载加修改的博客。 这是我做了2、3天左右的JavaWeb管理系统,bean package放JavaBean类,dao package放数据库操作方法的接口类。daoimpl是实现dao接口的类。factory package是dao工厂类。util package是工具包类,里面有数据库连接类和 分页类。servlet package是servlet类,是整个JavaWeb项目的控制类。view文件夹里全是.jsp文件。 学习MVC设计模式之前,先学习DAO设计模式。下面是我转的博客,是个挺不错的例子 DAO设计模式:
SmileNicky
2022/05/10
5070
MVC与三层架构
三层架构 (3-tier application) 是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 
周小董
2019/03/25
3K0
MVC与三层架构
ASP.NET MVC 模式的优缺点「建议收藏」
1、关注点分离:每个功能至少会被切分成为M-V-C三个部分,让开发者只需要关注一个部分,进而降低复杂度,提高开发速度。
全栈程序员站长
2022/09/15
1.3K0
MVC模式详解
MVC模式,即Model-View-Controller模式,是一种经典的软件设计模式,旨在将应用程序的输入、处理和输出分开,使得数据、视图和控制逻辑相互独立。MVC模式的核心是将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个核心部分,它们各自处理不同的任务,并通过定义好的接口进行交互。
会洗碗的CV工程师
2024/06/27
9720
MVC模式详解
对经典设计模式MVC的简单理解
MVC是模型(Model)、视图(View)、控制器(Controller)的简写,将业务逻辑、数据、显示分离的方法来组织代码。今天简单回顾一下。
china马斯克
2024/08/12
1690
设计模式(1)—— MVC
MVC(Model-View-Controller,模型-视图-控制器)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。
阳光岛主
2019/02/19
1.5K0
软件概要设计与详细设计
1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
全栈程序员站长
2022/07/22
6.3K0
软件概要设计与详细设计
什么是MVC三层架构?「建议收藏」
Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
全栈程序员站长
2022/09/12
9140
什么是MVC三层架构?「建议收藏」
相关推荐
框架介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文