gpt4 book ai didi

模型- View - Controller :谁通知 View

转载 作者:行者123 更新时间:2023-12-02 04:41:36 24 4
gpt4 key购买 nike

Controller 接收用户输入。 Controller 操纵/编辑模型。 View 可以查询模型以获得新的显示状态。我不明白的一点是谁实际通知更改的 View ?因为在原理图概览中,似乎Controller发送修改消息,Model也通知View更改。

即使在示例中,两者都会通知 View。例如,如果 Controller 发送针的位置,为什么模型仍必须通知 View ?

[这些数字来 self 们教授的幻灯片,所以它们是正确的]

MVC

Example

最佳答案

它变得有点困惑,所以我用谷歌搜索看看一些领先的 ​​authorities不得不说,因为维基百科和最初的点击量并不像他们看起来的那么好。

  • 模特。模型管理应用程序域的行为和数据,响应对其状态信息的请求(通常来自 View ),并响应更改状态的指令(通常来自 Controller )。
  • 查看。 View 管理信息的显示。
  • 控制者。 Controller 解释用户的鼠标和键盘输入,通知模型和/或 View 进行适当的更改。

所以看起来是Controller通知了View。

但需要注意的是View和Controller都依赖于Model。但是,模型既不依赖于 View 也不依赖于 Controller 。这是分离的主要好处之一。这种分离允许独立于视觉呈现来构建和测试模型。

MVC

当然,Controller 不能是唯一更改 Model 的人。因此,确实存在一些变化:

passive 模型在一个 Controller 专门操纵 Model 时使用。 Controller 修改模型,然后通知 View 模型已更改,应该刷新。这种情况下的模型完全独立于 View 和 Controller ,这意味着模型无法报告其状态的变化。

当模型在没有 Controller 参与的情况下改变状态时,使用主动模型。当其他来源正在更改数据并且更改必须反射(reflect)在 View 中时,就会发生这种情况。因为只有模型在内部状态发生变化时检测到它们,所以模型必须通知 View 刷新显示。-> 解释案例。

关于模型- View - Controller :谁通知 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20730020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com