【发布时间】:2013-02-18 19:15:02
【问题描述】:
又是一个与 MVC 相关的问题。几天前,我开始阅读 Apple 的 Cocoa Fundamentals Guide,其中 Apple 解释了他们的 MVC 实现。
在 MVC 作为复合设计模式 (link) 一章中,他们比较了两个 MVC 版本:
旧/传统 SmallTalk 版本:
当前 Apple 定义的版本:
他们对当前模型的描述如下:
此复合设计模式中的控制器对象包含 中介者模式和策略模式;它调解流程 模型和视图对象之间的双向数据。 变化 模型状态通过控制器传递给视图对象 应用程序的对象。
传统的模式看起来像 MVC,没有错。但是他们当前模式的名称让我感到困惑。据我所知,这可以看作是普通的MVP,因为控制器似乎总是在视图和模型之间进行调解。
我完全错了,我误解了 MVC 还是 MVP?还是 Apple 只是为这种模式使用了错误的名称?更重要的是,为什么现在的这种模式叫 MVC?
【问题讨论】:
-
这取决于。如果您的“视图”只是愚蠢的模板,而模型只是活动记录实例的集合,那么您所拥有的甚至不是 MVP。它只是 Rails 的一个克隆。
标签: cocoa model-view-controller design-patterns mvp