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