`
ihuashao
  • 浏览: 4744780 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多
什么是MVC设计模式
MVC是一种目前广泛流行的软件设计模式,早在70年代,IBM就推出了Sanfronscisico项目计划,其实就是MVC设计模式的研究。近来,随着J2EE的成熟,它正在成为在J2EE平台上推荐的一种设计模型,也是广大Java开发者非常感兴趣的设计模型。MVC模式也逐渐在PHP和ColdFusion开发者中运用,并有增长趋势。随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的依据。  

MVC设计思想

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层――模型层、视图层、控制层。

视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。

业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。

控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

MVC的优点

大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。

首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。




MVC设计模型


其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。

再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。

控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。

最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。

MVC的缺点

MVC的设计实现并不十分容易, 理解起来比较容易,但对开发人员的要求比较高。MVC只是一种基本的设计思想,还需要详细的设计规划。

模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。

经验表明,MVC由于将应用分为三层,意味着代码文件增多,因此,对于文件的管理需要费点心思。

综合上述,MVC是构筑软件非常好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图以及控制层, 使得你会认真考虑应用的额外复杂性,把这些想法融进到架构中,增加了应用的可拓展性。如果能把握到这一点,MVC模式会使得你的应用更加强壮,更加有弹性,更加个性化。
分享到:
评论

相关推荐

    MVC设计模式例子程序

    **MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...

    MVC设计模式详解

    **一、什么是MVC设计模式** MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种在软件工程中广泛应用于构建用户界面的架构模式。它将应用程序的数据处理、业务逻辑与用户界面进行分离,使得开发...

    MVC设计模式

    **一、什么是MVC设计模式** MVC(Model-View-Controller)设计模式是一种广泛应用于Web应用开发中的架构模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种模式的主要...

    java中MVC设计模式

    Java 中 MVC 设计模式 MVC 设计模式是软件架构中的一种经典设计模式,广泛应用于 Java Web 开发中。MVC 模式将应用程序分为三个主要部分:Model(模型)、View(视图)和 Controller(控制器),每个部分都有其特定...

    mvc设计模式 详解

    mvc设计模式详解 mvc设计模式是一种广泛流行的软件设计模式,早在70年代,IBM就推出了Sanfronscisico项目计划,其实就是mvc设计模式的研究。mvc模式在j2ee平台上非常流行,也是广大java开发者非常感兴趣的设计模型...

    MVC设计模式了解什么是mvc

    在实际应用中,许多Web框架如ASP.NET MVC、Ruby on Rails、Spring MVC等都采用了MVC设计模式。例如,书shop应用可能使用MVC来实现用户浏览书籍、添加到购物车、结算等功能: - **模型**:包含书籍的信息(ID、标题...

    MVC设计模式相关网页

    **一、什么是MVC设计模式** MVC(Model-View-Controller)设计模式是一种广泛应用于Web应用开发中的架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种模式的主要...

    j2EE-MVC设计模式(内附ppt讲解,学习笔记和应用实例)

    **一、什么是MVC设计模式** MVC,即Model-View-Controller,是一种软件设计模式,常用于构建可维护性和可扩展性高的Web应用程序。在J2EE环境中,MVC模式是开发大型企业级应用的重要框架之一。它将应用程序的业务...

    MVC设计模式.ppt

    MVC设计模式讲解PPT材料,模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。MVC是一种软件设计模式,不仅仅应用于WEB。在日常生活中处处可以找到类似于MVC的例子。在WEB...

    jsp的MVC设计模式

    总的来说,理解和掌握MVC设计模式对于任何Java Web开发者来说都是至关重要的,它能够帮助我们构建更加健壮、可维护的Web应用程序。通过学习“jsp的MVC设计模式”教程源码,你可以更深入地了解这一模式,并将其应用到...

    MVC设计模式范例

    **MVC设计模式详解** **一、MVC模式概述** MVC(Model-View-Controller)设计模式是一种软件设计架构模式,广泛应用于Web应用开发,主要用于分离应用程序的业务逻辑、用户界面和数据处理。该模式将应用程序分为三...

    mvc设计模式介绍与详细讲解

    ### MVC设计模式介绍与详细讲解 #### 一、MVC设计模式概述 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web应用开发领域非常常见。它将应用程序分为三个核心组件:模型...

    MVC设计模式框图解

    让你对MVC设计模式有一个更加深刻的认识,深入浅出的搞明白MVC

    MVC设计模式概念及优缺点

    ### MVC设计模式概念及优缺点 #### 一、MVC设计模式的概念 MVC(Model-View-Controller)设计模式是一种广泛应用于软件工程中的架构模式,尤其在Web开发领域非常流行。该模式的核心理念在于将应用程序划分为三个...

    mvc设计模式

    #### 什么是MVC设计模式? MVC设计模式(Model-View-Controller),是一种广泛应用于软件开发中的架构模式,尤其是在iOS开发领域,它被广泛认为是创建高质量应用程序的基础之一。MVC设计模式将应用程序分解为三个...

    mvc设计模式demo1

    **MVC设计模式详解及其在Android中的应用** MVC(Model-View-Controller)设计模式是一种广泛用于软件工程,特别是Web应用程序开发的经典架构模式。它将应用程序的不同组件划分为三个主要部分,以实现职责分离,...

    mvc设计模式和模板模式ppt

    ### MVC设计模式详解 #### 一、MVC模式的起源 MVC模式即“模型-视图-控制器”模式(Model-View-Controller),这一概念最早由Trygve Reenskaug于1978年提出[1]。该模式最初是在施乐帕罗奥多研究中心(Xerox PARC)为...

    MVC设计模式云盘分享

    MVC设计模式云盘分享JAVA课程资源。MVC设计模式云盘分享

    JAVA WEB中MVC设计模式

    **Java Web中的MVC设计模式** MVC(Model-View-Controller)设计模式是一种广泛应用于Web应用程序开发的架构模式,它的主要目标是将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和可扩展性。在Java ...

Global site tag (gtag.js) - Google Analytics