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

标签 php oop design-patterns codeigniter frameworks

我正在积累 OOP 设计模式的知识,并且由于我的主要关注点是网站开发和 Web 应用程序开发,所以我尝试在这些领域中寻找设计模式的示例,但似乎主要是遇到 Web 框架(任何其他示例都会不胜感激)。在我看来,大多数(全部?)基于 PHP 的框架似乎都使用 MVC 设计模式。由于这是使用最广泛的,因此可以假设它是此类开发的最佳设计模式是否正确,或者它是否反射(reflect)了与其他设计模式相比更浅的学习曲线?

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

最佳答案

他们按名称使用 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

关于php - 为什么 MVC 设计模式被广泛用于网站开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919410/

相关文章:

php_value auto_prepend - 导致 500 错误?

python - 用 flask 记录错误

php - 什么时候在 PHP 中使用 $this 关键字?

java - 将 OOP java 转换为现代 C++ 代码、抽象方法和接口(interface)方法

design-patterns - 主干 : Multiple views subscribing to a single collection's event? 这是一种不好的做法吗?

javascript - OPTIONS 405(方法不允许)

php - 使用 gmail API 获取解码后的附件文件大小

javascript - PHP Web 服务器和 Node Js 之间的安全通信/身份验证

java - 嵌入式系统中线程池的优点

design-patterns - 领域贫血在面向服务的架构中是否合适?