首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MVC设计模式被广泛用于网站开发?

为什么MVC设计模式被广泛用于网站开发?
EN

Stack Overflow用户
提问于 2011-02-07 16:52:09
回答 5查看 2.9K关注 0票数 6

我正在发展我的OOP设计模式的知识,因为我的主要关注点是网站开发和web应用程序开发,我试图在这些领域找到设计模式的例子,但似乎主要是遇到web框架(任何其他例子都将不胜感激)。在我看来,大多数(所有?)基于PHP的框架似乎使用了MVC设计模式。由于这是最广泛使用的设计模式,我们是否可以假设它是此类开发的最佳设计模式,或者它是否反映了与其他设计模式相反的较浅的学习曲线?

我还注意到codeigniter框架同时使用单例模式和MVC模式。这种混合设计模式是常见的吗?它是有效的,还是出于特定的原因在codeigniter中使用的?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-07 17:08:50

它们按名称使用MVC模式。之所以选择它作为buzzword,是因为它广为人知。该概念在web应用程序中的使用方式与original pattern.非常相似

它对于常见的命名法很有用,因为人们对它应该做的事情有一个模糊的理解。然而,还有更好的模式,例如Model-View-Presenter更好地描述了实践中所做的事情(这个术语只是不使用,因为它是未知的)。还有其他一些变体在技术上已经取代了MVC。

单例是另一种代码结构思想。它与您如何设计一般的应用程序流无关。它是用于标识常见对象结构习惯用法的为数不多的描述性术语之一。这个词可能被滥用了,因为它的名气太大了。在实践中,对于好的应用程序设计来说,它既不重要也不重要。

以下是常见对象API的设计模式名称的简要概述:

http://www.fluffycat.com/PHP-Design-Patterns/

关于MVC核心概念的一些讨论在这里(可能不相关,但非常有趣):

http://c2.com/cgi/wiki?MvcIsNotImplementable

http://c2.com/cgi/wiki?MvcIsNotObjectOriented

票数 3
EN

Stack Overflow用户

发布于 2011-02-07 17:00:42

我认为你在这里混淆了一些概念。首先,MVC并不完全是一个设计模式,而更多的是一个组织应用程序的通用概念。B/c MVC没有一种或最好的实现。MVC就是你的常识告诉你的关于结构化数据处理的东西。将你所看到的,与内部正在发生的事情和处理的信息分开。

单例通常使用b/c在MVC中,有许多不同的对象使用相同的资源。为了组织这一点,你可以使用,例如,使用实现为单一的注册表来提供对数据库的访问。

诚挚的问候

拉斐尔

编辑:

实际上,对于MVC结构的有用实现应该是什么样子,有很多不同的观点。

例如,在书中你通常会看到三个方框,标签'model','view‘和'controller’。它们都由箭头连接在一起。我认为应该省略“view”和“model”之间的连接,因为模型应该由与view通信的控制器来处理。

另外,我认为区分业务逻辑和控制器是非常重要的。Get很容易混淆。但是BL属于模型层。从这个意义上说,我不认为MVC是一个三角形,而更像是一个三层系统的V/C/M。

票数 1
EN

Stack Overflow用户

发布于 2011-02-07 17:08:19

对于网站开发,基本上有两个过程在进行。您有服务器端,在那里收集和/或操作数据。然后是客户端,需要展示一些东西。(在此步骤中,会将一些数据传递给视图)

正如您从OOP中了解到的那样,向您正在处理的数据添加结构是一种很好的实践。这就是模型发挥作用的地方。最后,让控制器对模型进行处理,然后将数据传递给视图。

您可能会说MVC是两个原则的产物:服务器/客户端分离和OOP。

至于单例类:它们实际上是用来共享资源的,比如数据库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4919410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档