首页 文章

MVC中的模型到视图通信?

提问于
浏览
2

我现在正在学习MVC,当控制器修改模型时,我可以通知视图更新模型中的数据 . 虽然我对它很困惑 . 由于模型是由控制器而不是自身或其他东西修改的,因此应该是控制器将更新通知发送到视图 . 此外,我还没有找到任何这种模型到视图通信的例子,请给我一个清楚,如果有人理解这个想法 .

2 回答

  • 0

    查看通信的模型通常通过Observer模式完成 . 视图中的代码往往比模型中的代码更改,因此模型 - 视图分离意味着模型元素不直接依赖于视图元素 . 您可以添加或更改视图代码,模型代码不受影响 .

    状态更改的模型元素仅通知其所有观察者 . 状态更改可能由于控制器或其他原因(值随时间变化)而发生 .

    请参阅https://msdn.microsoft.com/en-us/library/ff649643.aspx特别是以下内容:

  • 0

    MVC的核心组件 model 根据其问题域捕获应用程序的行为,与用户界面无关 . model 直接管理应用程序的数据,逻辑和规则 . view 可以是信息的任何输出表示,例如图表或图表 . 第三部分 controller 接受输入并将其转换为 modelview 的命令 .

    通常, controller 接收用户输入,例如按键和鼠标点击,并基于此修改 model . 当 model 更改时,需要更新 view 以反映更改 .

    如何实现 view 更新有几个选项 .

    A) view 更新可以通过在修改 model 后直接从 controller 调用来实现 . 有关示例,请参见here .

    B)可以使用Observer模式实现 view 更新 . 在这种情况下, model 会在每次 model 中发生相关更改时触发 view 上的更新事件 . 有关示例,请参阅here .

相关问题