我的经验主要限于
PHP,但据我所知,Rails和ASP.NET MVC都采取了相同的路径.
关键是几乎每一个Web框架,我曾经遇到过实现控制器的动作,如方法,例如创建,编辑,显示等.这些方法驻留在一个类似PostsController的类中,但是它们几乎不共享状态或依赖关系,因为在整个请求中只有一个被调用.
这就是为什么我这个方法似乎是不合理的,因为类只能作为某种命名空间.看到具有大块几乎不相关的控制器动作代码的示例组成甚至更大的控制器类也没有帮助.然而,很多框架都是这样做的,只有少数框架为每个动作使用一个类.
所以问题是,为什么会这样呢?也许这是主观的,但我相信我可能错过了这种方法的重要优势.
我会认为,MVC设计模式通常会指出这种构建控制器的方法.控制器的主要目的是在相关视图和需要与之交互的模型之间提供适当的“布线”,以及从视图处理输入所需的任何业务逻辑.控制器应该是这些其他组件之间的薄层.
例如,维基百科描述控制器如下:
原文链接:https://www.f2er.com/php/132492.html例如,维基百科描述控制器如下:
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环境中的控制器确实保持状态,但是例如PHP中缺乏状态的原因只是HTTP是无状态协议.在这种环境中使用MVC本来就会导致不保持状态的控制器.