【问题标题】:MVC : Linear communication vs. Triangular communicationMVC:线性通信与三角通信
【发布时间】:2012-05-18 05:48:39
【问题描述】:

WikiPedia (Comparison with the MVC architecture)中说——“MVC架构是三角的:视图向控制器发送更新,控制器更新模型,视图直接从模型"

再次通过ASP.Net Definitionimage,可见MVC支持三角通信。

但查询是视图与模型交互的方式和时间,反之亦然。

获得一些代码来说明 MVC 支持三角通信的方式和时间是令人钦佩的。

【问题讨论】:

  • 视图可以像控制器一样发出查询。 MVC 实际上只是提供了指导方针——它们可以被破坏(或变通)。
  • +1 评论“MVC 真的只是提供指南”

标签: c# asp.net-mvc model-view-controller design-patterns


【解决方案1】:

与其他设计模式或复合模式一样,MVC 为设计人员留出了很大的余地,让他们以自己的方式适应/采用/理解。

如果你看一下 MVC 的历史,它是几十年前从 Smalltalk 语言中发明出来的,它与我们当前常用的 OO 语言 Java、.NET 或 C++ 存在一些差异。因此,对于 MVC 应该如何工作有很多解释。没有正确的解决方案!由你决定。也许MVC,你知道它的方式实际上是MVP,而不是别人眼中的MVC。我经历过谁知道多少次。如果您有兴趣,这里有一些关于 MVC 的讨论、差异以及我喜欢的实现方式。

现在需要注意的重点是,MVC 主要是为了将 View 与 Model 分离,以便多个 View 可以共享同一个模型。所以要具体回答你的问题:“视图如何以及何时与模型交互,反之亦然”

  • When:主要是当模型发生变化时,它会自动发送信号更新所有视图。

  • 如何:要么模型封装刷新所需的所有信息并将其发送到视图,要么视图持有对模型的引用并在必要时(或通过控制器)直接查询其状态。如你所愿。

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多