【发布时间】:2011-04-26 08:15:19
【问题描述】:
我刚刚开始阅读有关 MVC 模式的内容,但我并不完全理解它。
模型管理行为和 应用领域的数据, 回应信息请求 关于它的状态(通常来自 查看),并响应指令 改变状态(通常从 控制器)。在事件驱动系统中, 模型通知观察者(通常 意见)当信息发生变化时 他们可以做出反应。
视图将模型渲染成表单 适合交互,通常是 用户界面元素。多个视图 可以为单个模型存在 不同的目的。视口 通常有一对一的 与显示表面的对应关系 并且知道如何渲染它。
控制器接收用户输入并 通过拨打电话发起响应 在模型对象上。控制器接受 来自用户的输入并指示 模型和视口来执行动作 基于该输入。
(来自http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)
和
型号。模型管理行为 和应用领域的数据, 回应信息请求 关于它的状态(通常来自 查看),并响应指令 改变状态(通常从 控制器)。
查看。视图管理显示 信息。
控制器。控制器解释 从鼠标和键盘输入 用户,通知模型和/或 视情况进行更改。
(来自http://msdn.microsoft.com/en-us/library/ff649643.aspx)
我想我了解模型和视图是什么,但是我不了解控制器。从我阅读的文本和一些示例中,我看到控制器从用户那里获取输入。我见过诸如(在 Java 中)之类的例子:控制器是一个 JOptionPane,它从用户那里接收一个华氏温度的数字。然后在模型中赋值和转换,并在命令行中显示结果。我不明白为什么控制器会这样接受输入?
在 Ruby on Rails 中,我拥有存储数据的模型、显示不同视图并对视图中接收到的输入进行“处理”的控制器。
【问题讨论】:
-
+1 @Niko:很好。您的最后一句话,关于您如何理解 RoR 中的控制器,也适用于其他语言。
-
@bguiz:谢谢。那是正确的吗?控制器显示一个适当的视图,用户与视图交互可能会在表单中填写一些数据,然后按提交,这些数据被控制器中的代码处理并插入到模型中?
-
你最后一句话总结的很好。我也是这样理解的。你能指出你正在努力解决的例子吗?
-
das_weezul:我没有遇到特别困难的例子,我只是在正确理解这个概念时遇到了一些困难。
标签: java ruby-on-rails model-view-controller