再一次,一个与 MVC 相关的问题。几天前,我开始阅读 Apple 的 Cocoa Fundamentals Guide,其中 Apple 解释了他们的 MVC 实现。
在 MVC as a Compound Design Pattern (链接) 一章中,他们比较了两个 MVC 版本:
旧/传统 SmallTalk 版本:
当前 Apple 定义的版本:
他们对当前模型的描述如下:
这种复合设计模式中的控制器对象结合了中介者模式和策略模式;它在两个方向上调解模型和视图对象之间的数据流。 模型状态的变化通过应用程序的控制器对象传达给视图对象。
传统的模式看起来像 MVC,没有错。但是他们当前模式的名称让我感到困惑。据我所知,这可以看作是简单的MVP,因为控制器似乎总是在视图和模型之间进行调解。
我完全错了,我误解了 MVC 还是 MVP?还是 Apple 只是为这种模式使用了错误的名称?更重要的是,为什么这种当前模式被称为 MVC?