`

MVC是设计模式么?是框架么?

阅读更多

何为设计模式:

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

 

狭义上来讲,主要源于程序员的圣经:《Design Patterns: Elements of Reusable Object-Oriented Software》(即述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。该书提出32种设计模式,被程序员们奉为经典。

 

GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented Software》/《设计模式》一书的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)并没有把MVC提及为一种设计模式,而是把它当做“一组用于构建用户界面的类集合”。在他们看来,它其实是其它三个经典的设计模式的 演变:观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite)。根据MVC在框架中的实现不同可能还会用到工厂模式(Factory)和装饰器 (Decorator)模式。
正如我们所讨论的,models表示应用的数据,而views处理屏幕上展现给用户的内容。为此,MVC在核心通讯 上基于推送/订阅模型。当一个model变化时它对应用其它模块发出更新通知(“publishes”),订阅者 (subscriber)——通常是一个Controller,然后更新对应的view。观察者——这种自然的观察关系促进了多个view关联到同一个 model。
感兴趣的开发人员想更多的了解解耦性的MVC(根据不同的实现),这种模式的目标之一就是在一个主题和它的观察者之间建立一对多的关 系。当这个 主题改变的时候,它的观察者也会得到更新。Views和controllers的关系稍微有点不同。Controllers帮助views对不同用户的输 入做不同的响应,是一个非常好的策略模式例子。

 

那么,何为框架?

框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式。

 

MVC不是设计模式,应该是框架/架构模式,因为它的定义是抽象的,没有足够的细节描述使你直接去实现,而只能根据MVC的概念和思想,用几个设计模式组合实现。

 

可以这么说,在JavaEE中MVC框架的实现有 struts,springmvc等。

 

从广义的设计模式来说,优秀的思想/经验都可以称为模式,MVC有何尝不是一种优秀的思想和经验呢?

其实有些说法就像禅,说多了反而让人不理解。

有些事情何必太认真,认真你就输了。

 是什么其实不重要,重要的是你懂,就够了。

 

 

参考:http://damoqiongqiu.iteye.com/blog/1949256

 

1
3
分享到:
评论
2 楼 yanqlv 2014-10-26  
系统化的描述也挺重要,架构模式>设计模式,架构模式≈设计模式的组合,可否这么理解?
1 楼 dxbj1010 2014-10-26  
引用

说的好!

相关推荐

    MVC设计模式例子程序

    在C#中,MVC设计模式可以通过ASP.NET MVC框架来实现,但这个例子使用的是Windows Forms,这意味着它是在桌面环境中实现的MVC。Windows Forms本身并不直接支持MVC,但我们可以通过自定义设计来模拟这一模式。例如,...

    MVC无框架设计模式

    总结来说,"MVC无框架设计模式"项目是一个很好的实践平台,它涵盖了Java Web开发中的基本元素,包括数据库操作、MVC设计模式的应用以及日志记录。通过这个项目,开发者可以深入理解各部分的工作原理,提升自己的技能...

    基于MVC设计模式的WEB应用框架研究

    【MVC设计模式详解及其在Web应用框架中的应用】 MVC(Model-View-Controller)设计模式是软件工程中一种广泛应用于Web应用开发的架构模式,尤其在J2EE环境中,它有效地分离了应用程序的不同部分,提高了代码的可...

    mvc设计模式 详解

    mvc设计模式对于web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的...

    MVC设计模式详解

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

    MVC设计模式范例

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

    MVC模式与ASP.NET MVC框架概述_mvc_MVC设计模式_

    ASP.NET MVC是由微软开发的一个开源Web应用程序框架,它基于MVC设计模式,提供了构建可测试、高性能的Web应用的能力。ASP.NET MVC框架有以下特点: 1. **灵活性**:ASP.NET MVC允许开发者选择使用HTML、CSS和...

    jsp的MVC设计模式

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

    mvc设计模式和模板模式ppt

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

    MVC(单例模式)设计模式

    总之,MVC设计模式是构建复杂Web应用程序的一种有效方式,它通过明确的角色分工和灵活的组件交互,帮助开发者创建出易于维护和扩展的软件系统。在实际应用中,开发者需要根据项目的具体需求,合理运用各种设计模式,...

    基于MVC设计模式开发出的简单PHP框架,学习必备

    **基于MVC设计模式的PHP框架详解** MVC(Model-View-Controller)设计模式是软件工程中一种广泛采用的架构模式,尤其在Web开发领域,PHP框架常常以此为基础进行构建。这种模式将应用程序分为三个核心组件:模型...

    (1)MVC模式与ASP.NET MVC框架概述

    ASP.NET MVC是微软推出的一个开源Web应用程序框架,它基于MVC设计模式,用于构建动态、数据驱动的Web应用。该框架与传统的ASP.NET Web Forms不同,提供了更灵活的架构和更高的测试能力。 1. **路由**: ASP.NET ...

    MVC设计模式.ppt

    **MVC设计模式详解** **一、MVC模式的基本概念** MVC,即Model-View-Controller,是一种软件设计模式,起源于80年代的Smalltalk-80,现广泛应用于Web开发。它将应用程序分为三个核心组件:模型(Model)、视图...

    在Java Swing中实现MVC设计模式(英文)

    在Java Swing中实现MVC设计模式的知识点涉及软件设计原则、编程范式以及Swing框架的具体应用。MVC(Model-View-Controller)设计模式是一种将数据表示和数据处理分离的架构,目的是让开发者能够独立开发和维护数据...

    深入浅出的理解框架SSH与MVC设计模式 - 副本.docx

    《深入浅出理解框架SSH与MVC设计模式》 在当今的Java EE开发领域,SSH(Struts2、Hibernate、Spring)框架与MVC设计模式是开发者必须掌握的核心技术。这些框架不仅简化了开发流程,提高了开发效率,而且在解决传统...

    MVC设计模式下Web开发框架的研究与应用.nh

    MVC设计模式下Web开发框架的研究与应用.nh 注意事项: nh文件打开软件:CAJViewer 下载该软件即可使用它打开本论文 CAJViewer6.0全文浏览器是中国期刊网的专用全文格式阅读器截至2005年5月为止的最新版 ...

    C++实现简单的MVC框架

    本项目是用C++实现的一个简单的MVC框架,名为MVCDemo,旨在帮助开发者理解MVC设计模式的基础概念。 首先,我们来详细解释MVC的三个组成部分: 1. Model(模型):模型层是应用的核心,它负责管理数据和业务逻辑。...

    论PHP框架设计模式及MVC的缺陷

    在IT行业中,PHP框架设计模式和MVC架构是开发Web应用程序时常见的技术选择。这篇文章将深入探讨PHP框架中的设计模式以及MVC模式的优缺点,同时结合提供的"framework.txt"文件,我们可以进一步理解这些概念。 首先,...

    基于struts框架mvc模式应用的实现

    Struts框架是一个开源的Java Web应用框架,它基于MVC设计模式,为开发者提供了一套标准的方式来构建Web应用。Struts框架的主要优势在于它能够很好地分离关注点,使得开发者能够更加专注于业务逻辑而不是底层的技术...

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    这个框架结合了Model-View-Controller(MVC)设计模式的灵活性和ASP.NET的强大功能,为开发者提供了构建可测试、高性能的Web应用的工具。 在本课程中,我们将深入探讨MVC模式和ASP.NET MVC框架的基础知识。MVC模式...

Global site tag (gtag.js) - Google Analytics