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