在WikiPedia (Comparison with the MVC architecture)中说——“ MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新”
再次通过ASP.Net的定义和图像,可以看出 MVC 支持三角通信。
但查询是视图与模型交互的方式和时间,反之亦然。
获得一些代码来明确说明 MVC 如何以及何时支持三角通信是令人钦佩的。
在WikiPedia (Comparison with the MVC architecture)中说——“ MVC 架构是三角形的:视图向控制器发送更新,控制器更新模型,视图直接从模型中更新”
再次通过ASP.Net的定义和图像,可以看出 MVC 支持三角通信。
但查询是视图与模型交互的方式和时间,反之亦然。
获得一些代码来明确说明 MVC 如何以及何时支持三角通信是令人钦佩的。
与其他设计模式或复合模式一样,MVC 为设计人员留下了很多以自己的方式适应/采用/理解的空间。
如果你看一下 MVC 的历史,它是几十年前从 Smalltalk 语言中发明出来的,它与我们当前常用的 OO 语言 Java、.NET 或 C++ 存在一些差异。因此,对于 MVC 应该如何工作有很多解释。没有正确的解决方案!由你决定。也许MVC,你知道它的方式实际上是MVP,而不是别人眼中的MVC。我经历过谁知道多少次。如果你有兴趣,这里有一些关于 MVC 的讨论,我喜欢的差异以及如何实现它。
现在需要注意的重要一点是,MVC 主要是为了将 View 与 Model 分离,以便多个 View 可以共享同一个模型。因此,要具体回答您的问题:“视图如何以及何时与模型交互,反之亦然”
何时:主要是当模型发生变化时,它会自动发送信号更新所有视图。
方式:要么模型封装刷新所需的所有信息并将其发送到视图,要么视图持有对模型的引用并在必要时(或通过控制器)直接查询其状态。如你所愿。