MVC简述

我们已经学习了三层架构,现在学习MVC架构,很多人都会把三层和MVC混淆,那么我们就来看看MVC的庐山真面目。

一、定义

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

在MVC设计模式中:

Model是指要处理的业务逻辑和数据操作,它接收视图请求的数据并返回最终的处理结果;

View视图主要是指的跟用户打交道并且显示给用户看的;

Controller看成是Model和View的桥梁,枢纽,响应请求,处理跳转,使模型和视图保持一致。

 二、处理流程图

对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。

三、优点

1、视图重用。多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。

2、松散耦合。由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。

3、灵活性。控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。

  四、缺点

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

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

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

视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

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

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

MVC的使用会使我们的软件或系统在健壮性,代码重用和结构方面有很大的提升。但并不是所有的系统都适合使用MVC,它会带来额外的工作和复杂性,所以并不适合小型甚至中等规模的系统或软件,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。这就需要我们做出抉择。

时间: 2024-10-25 04:52:57

MVC简述的相关文章

Spring MVC 简述:从MVC框架普遍关注的问题说起

任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发.数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外.本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理.架构角度介绍了它对这些问题的处理,包括请求处理流程.消息转换机制和数据绑定机制等核心问题.最后,本文对目前最为流行的两个MVC框架SpringMVC 和 一. MVC 模式与框架 1.MVC 模式 Java We

struct2.1笔记01:MVC框架思想浅层理解

1. Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟.稳定,性能也有了很好的保证.因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架. 目前,基于Web的MVC框架非常多,发展也很快,每隔一段时间就有一个新的MVC框架发布,例如像JSF.Tapestry和Spring MVC等.除了这些有名的MVC框架外,还有一

简述关于ASP.NET MVC与.NET CORE 的区别

简述关于ASP.NET MVC与.NET CORE的区别1.关于ASP.NET 关于MVC刚开始接触这个技术的时候我经常不理解他们的名字,我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样产生很多为什么,也会误认为认为MVC与ASP.NET完全没有关系,是一个全新的Web开发,深入学习后我才知道事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC.我们可将原来的ASP.NET称为 ASP.NET

简述MVC框架模式以及在你(Android)项目中得应用

标题是阿里电话面试的问题,一直以为自己很清楚MVC模式,结果被问到时,这M.V.C这几者之间的关系都搞不清楚了,最主要是,没法将MVC和Android中各个组件对应起来,所以,面试肯定挂了,不过面试也是学习的一种方式,可以知道大公司看中什么,以及自己还有哪些知识漏洞,例如这次面试就学到了很多东西. 大家也可以在看下面的内容之前,也想想能否把MVC及与Android各个组件的对应关系讲清楚,看是否还有和我一样对MVC一知半解的.  如果写的有问题的地方,欢迎讨论.转载请注明出处:http://ww

简述MVC模式中M、V、C分别指代什么及发挥的作用

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. 视图是用户看到并与之交互的界面,视图没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式. 模型表示企业数据和业务规则,模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性. 控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处

简述MVC思想 与PHP如何实现MVC

我相信已经有很多这样的文章了,但是我今天还是愿意把自己的经验与大家分享一下.纯属原创,我也没什么保留,希望对新手有帮助,有说的不对的地方,也欢迎指出. 什么是MVC? 简单的说就是将网站源码分类.分层. MVC三个字母的含义: M:Model 模型,负责数据库操作. V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果. C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么. 如此说来,程序的执行顺序是C-V-M 或 C-M ,和MV

简述spring mvc 和spring

spring 是是一个开源框架,是为了解决企业应用程序开发,功能如下 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. ◆轻量--从大小与开销两方面而言Spring都是轻量的.完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布.并且Spring所需的处理开销也是微不足道的.此外,Spring是非侵入式的:典型地

asp.net简述MVC开发模式

详情请参考:http://www.runoob.com/aspnet/mvc-intro.html 1.MVC 是三种 ASP.NET 编程模式中的一种.MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式. 2.MVC - 应用程序文件夹 所有的 MVC 应用程序的文件夹名称都是相同的.MVC 框架是基于默认的命名.控制器写在 Controllers 文件夹中,视图写在 Views 文件夹中,模型写在 Models 文件夹

MVC模式中M,V,C每个代表意义,并简述在Struts中MVC的表现方式。

解答: MVC是Model-View-Controller 的缩写,Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View 是应用的表示层(由JSP页面产生)Controller是通过应用的处理过程控制,(一般是一个servert)通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用. 在Struts框架中Controller功能由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象