Design patterns 为什么在大多数应用程序中,选择MVC设计模式与其他设计模式相比?

Design patterns 为什么在大多数应用程序中,选择MVC设计模式与其他设计模式相比?,design-patterns,Design Patterns,我的问题是关于设计模式,与其他设计模式相比,为什么大多数Web应用程序当前使用模型-视图-控制器设计模式 谢谢 几乎所有语言都支持它——它是一种众所周知、易于识别和理解的设计模式,适合大多数web应用程序的范例。在某些情况下,它可能被过度使用-但通常它是web应用程序的一个好选择-这些应用程序通常只是美化CRUD(创建/读取/更新/删除)数据库前端。好吧,几乎所有语言都支持它-这是众所周知的,易于识别和理解的设计模式,适合大多数web应用程序的范例。在某些情况下,它可能会被过度使用,但一般来说,

我的问题是关于设计模式,与其他设计模式相比,为什么大多数Web应用程序当前使用模型-视图-控制器设计模式


谢谢

几乎所有语言都支持它——它是一种众所周知、易于识别和理解的设计模式,适合大多数web应用程序的范例。在某些情况下,它可能被过度使用-但通常它是web应用程序的一个好选择-这些应用程序通常只是美化CRUD(创建/读取/更新/删除)数据库前端。

好吧,几乎所有语言都支持它-这是众所周知的,易于识别和理解的设计模式,适合大多数web应用程序的范例。在某些情况下,它可能会被过度使用,但一般来说,它是web应用程序的一个好选择,这些应用程序通常只是美化CRUD(创建/读取/更新/删除)数据库前端。

MVC模式自然适合web框架提供的核心功能:

  • 您通常必须从后端(模型)提供数据
  • 需要呈现的内容(视图)
  • 需要处理和路由的请求(控制器)
并将这些关注点分开,而不是纠缠在一起。混合使用这些概念(例如JSP/ASP页面中的SQL调用)通常会导致维护问题。MVC有助于防止这种情况,并在整个web应用程序中加入一些结构

当然,web应用程序中仍然可以使用其他设计模式,但MVC非常适合web框架的“后端数据服务”方案

编辑:
正如RibaldEddie所指出的:MVC不仅仅是这些关注点的分离,而是框架如何允许它们干净地交互。当然,MVC模式还有更多内容,这并不是对该模式的详尽解释。

MVC模式自然地成为Web框架提供的核心:

  • 您通常必须从后端(模型)提供数据
  • 需要呈现的内容(视图)
  • 需要处理和路由的请求(控制器)
并将这些关注点分开,而不是纠缠在一起。混合使用这些概念(例如JSP/ASP页面中的SQL调用)通常会导致维护问题。MVC有助于防止这种情况,并在整个web应用程序中加入一些结构

当然,web应用程序中仍然可以使用其他设计模式,但MVC非常适合web框架的“后端数据服务”方案

编辑:
正如RibaldEddie所指出的:MVC不仅仅是这些关注点的分离,而是框架如何允许它们干净地交互。当然,MVC模式还有更多内容,这并不是对该模式的详尽解释。

它只是一个取自旧一代OOP GUI软件开发范例的名称

它是为web选择的一个名称,因为在web不是软件开发的焦点的那一天,MVC是如何分离您的关注点(或者更准确地说,封装不同的关注点)

由于人们在web的早期很难将他们的关注点分离开来,所以他们从桌面应用程序编程中使用这个名称来说服web开发人员有更好的方法


不幸的是,在我看来,我们已经失去了一点使MVC在网络上如此强大的因素。有很多程序员只对web及其MVC概念有过经验。我认为,如果你看看一些旧的桌面库,你可能会发现一种新的方式来看待MVC的旧概念。希望这能让您了解在web架构方面真正棘手的问题所在。

这只是一个取自旧一代OOP GUI软件开发范例的名称

它是为web选择的一个名称,因为在web不是软件开发的焦点的那一天,MVC是如何分离您的关注点(或者更准确地说,封装不同的关注点)

由于人们在web的早期很难将他们的关注点分离开来,所以他们从桌面应用程序编程中使用这个名称来说服web开发人员有更好的方法


不幸的是,在我看来,我们已经失去了一点使MVC在网络上如此强大的因素。有很多程序员只对web及其MVC概念有过经验。我认为,如果你看看一些旧的桌面库,你可能会发现一种新的方式来看待MVC的旧概念。希望这能让您了解在web架构方面真正棘手的问题所在。

那么您是说“设计模式”只包含名词?你列出了名词,但根本没有讨论动词;也就是说,这三件事是如何协同工作的?这是最重要的部分。这就是开发人员的艰苦工作所在,也是您决定或破坏应用程序可维护性的地方。这不是零件,而是你如何把它们连接在一起@RibaldEddie:说得好,我添加了一个编辑以使其更清晰。那么你是说“设计模式”只包含名词?你列出了名词,但根本没有讨论动词;也就是说,这三件事是如何协同工作的?这是最重要的部分。这就是开发人员的艰苦工作所在,也是您决定或破坏应用程序可维护性的地方。这不是零件,而是你如何把它们连接在一起@RibaldEddie:很好,我添加了一个编辑,使其更清晰。因为这是一个简单的解决方案,可以满足web应用程序的需求。还有什么其他的设计模式?仅举一个例子。因为这是一个直接满足web应用程序需求的解决方案。还有什么其他设计模式?仅举一个例子。