模型 - 视图 - 控制器:何时应该由控制器确定对视图的更改?

时间:2009-05-04 19:13:12

标签: model-view-controller design-patterns

模型 - 视图 - 控制器似乎允许对视图进行两种类型的更改:

  1. 每当模型发生变化时,视图都会收到更改通知,以便相应地更新其可视化表示。
  2. 为了“视图选择”,控制器可以直接访问视图的API。
  3. 究竟什么是“视图选择”,在什么情况下控制器应该对视图进行更改而不是让视图仅根据模型进行自己的更改?

2 个答案:

答案 0 :(得分:0)

以下是您可能会觉得有用的文章。

Modified MVC Pattern

作者提出了一个MVC流程,其中模型向Controller发送通知(而不是传统方式的View)。因此,控制器在两个方向上调节模型和视图对象之间的数据流。正如他们所说的

  

此设计有助于更完全地将模型与视图分离。在这种情况下,控制器可以指示它希望在向控制器注册的一个或多个模型中找到的模型属性。此外,它还可以提供影响模型的一个或多个视图的属性更改的方法

...这是关于什么是视图选择的问题的答案。基本上只是应用程序具有一系列视图,这些视图根据模型中的单个更改进行关联或更新。 Controller将决定哪些视图需要更新和/合作以完成工作(来自一个视图的信息是不够的)

答案 1 :(得分:0)

在MVC中的web apllication中使用没有事件通知机制,与MVVM不同,您的视图在更改时不会通知视图。但它是控制器动作,它创建并传递模型作为redering视图的一部分。