gpt4 book ai didi

php - 为什么这么多 MVC Web 框架喜欢将多个 Controller 操作分组到一个类中?

转载 作者:可可西里 更新时间:2023-10-31 22:49:46 24 4
gpt4 key购买 nike

我的经验主要限于 PHP,但据我所知,Rails 和 ASP.NET MVC 都采用了相同的路径。

关键是,几乎我遇到的每个 Web 框架都将 Controller 操作实现为方法,例如createeditshow 等。这些方法驻留在单个类中,如 PostsController,但它们几乎从不共享状态或依赖项,因为只有其中之一在整个请求期间被调用。

这就是为什么对我来说这种方法似乎很不合理,因为该类仅充当某种 namespace 。看到大量几乎不相关的 Controller 操作代码组成更大的 Controller 类的示例也无济于事。然而,许多框架正是这样做的,只有少数框架为每个操作使用一个类。

那么问题来了,为什么会这样?也许这是主观的,但我相信我可能错过了这种方法的一个重要优势。

最佳答案

我认为 MVC 设计模式通常规定了这种构建 Controller 的方法。 Controller 的主要目的是在关联 View 和它需要与之交互的模型之间提供适当的“连接”,以及处理来自 View 的输入所需的任何业务逻辑。 Controller 应该只是这些其他组件之间的薄层。例如,维基百科对 Controller 的描述如下:

The controller receives input and initiates a response by making calls on model objects. A controller accepts input from the user and instructs the model and viewport to perform actions based on that input.

我同意其他非 Web 环境中的 Controller 确实会维护状态,但是 PHP 中缺少状态的原因很简单,例如 HTTP 是一种无状态协议(protocol)。在此环境中使用 MVC 本质上会导致 Controller 不维护状态。

关于php - 为什么这么多 MVC Web 框架喜欢将多个 Controller 操作分组到一个类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com