模型视图控制器 - 谁做什么?

时间:2013-11-09 23:00:22

标签: model-view-controller

我一直在寻找相互矛盾的信息,没有任何权威性,也没有足够的具体内容来解释我哥哥和我正在辩论的确切问题。那么有人可以将这个问题放在一边,并希望通过一些权威类型的文档吗?

简而言之: MVC中的3个组件中的哪一个负责确定要在屏幕上显示的对象的大小和位置?

1 个答案:

答案 0 :(得分:1)

MVC的关键是尝试实现类之间的松散耦合。这是通过应用几种模式来完成的(MVC是一种复合模式,意味着它是几种其他模式的组合)。

在这里,您可以找到" View&控制器","复合视图"和"模型和&之间的观察者视图/控制器"

关于如何处理这一切有很多争论,但总的来说就是:

在视图上发生了一些事情 - >查看信息控制器

                       -> Controller asks Model to change data
                       -> Controller asks View to update display
                       -> Model informs View state has changed
                       -> View pulls data from model

^使用拉入被认为是更正确的观察者模式"但它确实是一个指导而不是规则。记住这一点,View负责视图对象的位置(使用复合模式),控制器只是一个插件,因此操作知道如何发送到模型。这允许在视图和视图之间轻松切换。控制器。 (这会产生双向关联性,但这是另一个故事)