在MVC中,View的标准责任是什么?

时间:2017-03-08 12:18:36

标签: class oop model-view-controller

在MVC中,View的标准责任是什么?在互联网上研究书籍,示例和图表时,我遇到了完全不同的模型,视图和控制器类之间的交互方法。

IE中。在这些情况下,视图类不能直接访问模型。

View Cannot Access Model

View Cannot Access Model 2

但是,在此示例中,视图应表示模型中的数据并与模型类进行交互。并且没有与控制器的交互。

Model Updates View

在其他示例中,视图类与模型和控制器类都有交互:

View interacts with both model and controller 1

enter image description here

所以我对哪一种是标准方式或最佳实践感到有点困惑。

感谢您的回复。

Midori Kocak 软件工程师,作者 http://www.mynameismidori.com

2 个答案:

答案 0 :(得分:1)

我认为,最后两张图完全违背了MVC逻辑。表示层应与业务逻辑隔离。如果需要从视图层的业务逻辑中获取任何信息,则必须将它们传递给具有响应上下文的表示层。此外,如果您需要根据您的请求操作模型方面的任何信息,您必须在控制器端找出此问题:)

问候。

答案 1 :(得分:1)

重要的是,视图不得操纵来自模型的数据。它可以直接从模型中读取,也可以通过控制器调用间接读取。但是要更改模型,它必须要求控制者这样做。