再一次,一个与MVC相关的问题。几天前我开始阅读苹果的Cocoa基础指南,在其中苹果解释了他们对MVC的实现。
在MVC作为复合设计模式(link)章节中,他们比较了两个MVC版本:
老的/传统的SmallTalk版本:
当前Apple定义的版本:
他们对这个当前模型的描述如下:
传统模式看起来像MVC,没有问题。但是他们当前模式的名称让我感到困惑。在我的认知中,这可能被视为普通的MVP,因为控制器似乎总是在视图和模型之间进行调解。这个复合设计模式中的控制器对象包括调停者模式和策略模式;它在模型和视图对象之间双向地调节数据流。 模型状态的变化通过应用程序的控制器对象向视图对象通信。
我完全错了吗?我是否误解了MVC或MVP?还是苹果只是使用了错误的名称来命名此模式?更重要的是,为什么当前模式被称为MVC?