我不断发现总体上相互矛盾的信息,没有任何权威性,也没有足够具体的信息来解释我和我兄弟正在争论的确切问题。那么有人可以通过一些权威类型的文档来解决这个问题吗?
简而言之:MVC 中的 3 个组件中的哪一个负责确定要在屏幕上显示的对象的大小和位置?
我不断发现总体上相互矛盾的信息,没有任何权威性,也没有足够具体的信息来解释我和我兄弟正在争论的确切问题。那么有人可以通过一些权威类型的文档来解决这个问题吗?
简而言之:MVC 中的 3 个组件中的哪一个负责确定要在屏幕上显示的对象的大小和位置?
MVC 的关键是试图实现类之间的松耦合。这是通过应用几种模式来完成的(MVC 是一种复合模式,这意味着它是几种其他模式的组合)。
在这里,您可以找到“视图和控制器之间的策略”、“视图上的合成”和“模型和视图/控制器之间的观察者”。
关于如何处理这一切有很多争论,但一般术语是这样的:
视图上发生了一些事情->视图通知控制器
-> Controller asks Model to change data
-> Controller asks View to update display
-> Model informs View state has changed
-> View pulls data from model
^ 那是使用被认为“更正确”的观察者模式,但它确实是一个指导方针而不是规则。记住这一点,视图负责视图对象的位置(使用复合模式),控制器只是一个插件,因此动作知道如何发送到模型。这允许在视图和控制器之间轻松切换。(这会产生双向关联性,但这是另一回事)