如果这是正确的模型 - 视图 - 控制器,那为什么我觉得这么脏?

时间:2014-01-19 21:54:42

标签: c++ objective-c cocoa model-view-controller

我有一个Controller,它响应来自View的UI事件,在Model中设置Preference的状态,然后调用其他Controller代码来更改View的内容。

问题:在这种情况下,模型没有告知Controller Preference已经改变 - Controller正在利用它知道它是唯一可以设置该首选项的事实。

具体而言:视图中的下拉菜单已更改,以反映视图中表格中显示的数据类型。模型跟踪该菜单首选项的状态,因为该模型包含业务逻辑,用于生成Controller用于填充View表的文本。

但是模型没有任何关联通知控制器模型的偏好(下拉菜单选项)的表示已经改变;我已经跳过了,因为模型中数据更改的唯一方法是通过视图中用户调用的操作 - 控制器进行调节。

然而,当模型数据发生变化时,绝大多数模型DOES都会向感兴趣的控制器发送消息,因为在这些情况下,业务逻辑可以修改模型。

这是违反MVC范式的吗?

利用Controller知道它是模型中此数据的唯一设置者,这是不纯的吗?

为什么我觉得我正在逃避一些错误的事情?

注意:在这种情况下,Model是C ++,Controller和View是Objective-C&可可。

0 个答案:

没有答案