模型视图控制器

时间:2009-06-08 10:30:14

标签: model-view-controller design-patterns

我在我的应用程序中实现了模型 - 视图 - 控制器模式。它不是一个Web应用程序,但MVC适合它。

模型的所有更新现在都通过控制器进行路由。即使视图中的更新也会发送到控制器,它将被路由到模型。 (我根据应用模式在模型和控制器之间进行状态分类以进行决策)。在大多数模式中,我看到直接更新模型的视图。这在这种模式的背景下是否有效?

2 个答案:

答案 0 :(得分:3)

视图可以是模型的观察者 模型可以通过观察者界面访问视图。当模型更改时,它可以通知视图或控制器。 Observer模式将模型与视图和控制器分离。

  

Model-View-Controller

     

...

     

当使用被动模型时   控制器操纵模型   只。控制器修改   模型,然后通知视图   模型已经改变了,应该   刷新(见图2)。该模型   在这种情况下是完全的   独立于观点和   控制器,这意味着有   没有办法让模型报告   其状态的变化。   
...

     

当使用活动模型时   模型改变状态没有   控制人员的参与。这个可以   当其他来源发生变化时就会发生   数据和变化必须是   反映在意见中。考虑一下   股票代码显示。你收到   来自外部来源的库存数据和   想要更新视图(例如,   自动收报机带和警报窗口)   当库存数据发生变化时。因为   只有模型检测到它的变化   内部状态何时发生,   model必须通知视图刷新   显示器。   
...

答案 1 :(得分:2)

视图永远不应该直接通过控制器访问模型,所以你在我看来是正确的。