我在实现它之前正确理解MVC的问题是第三个问题:
我有两个案例:
主应用程序窗口需要启动首选项窗口.(一个视图调用另一个视图.)
应用程序的主要模型需要访问首选项模型中的属性.(一个模型访问另一个模型.)
这些问题的相关之处在于它们都涉及模型 - 视图 - 控制器三元组之间的通信,这个主题在我的谷歌搜索中没有找到太多讨论.
解决此问题的显而易见的方法是将所有内容包装在顶级"应用程序"对象中,该对象处理模型之间的事务,并允许控制器调用彼此的方法.我已经看到了这个实现,但我不相信它是一个好主意.我还可以看到控制器观察多个模型并响应多个视图的可能性,但这似乎会变得非常混乱并且难以遵循.
关于如何最好地实施这种串扰的建议?我觉得这是一个非常明显的问题,但我一直无法找到一个记录完备的解决方案.
更广泛地说,如果有人有链接显示这些MVC问题的典型方法,我很乐意看到它.我没有太多运气找到可靠的,非平凡的参考资料.Python中的例子很可爱,但我很乐意阅读任何内容.
编辑1:
我看到下面说了一些非常有趣的事情,一般来说没有人对我所描述的方法有任何问题.它已经几乎是Vincent描述的FrontController设计的一种懒惰形式.我当然没有预见到实现这种模式会有任何问题,但是,似乎没有人真正解决过模型之间的沟通问题.所有答案似乎都是在单个模型中解决对象之间的通信问题.我更感兴趣的是为应用程序的单独组件维护单独的模型,因此我不会将50个状态属性填充到单个Model类中.我应该将它们作为子模型进行维护吗?