【发布时间】:2012-01-06 05:08:21
【问题描述】:
我指的是通用的 MVC 设计模式(在Wikipedia 中定义)。在做一个 GUI 密集型应用程序时,我通常会有很多控制器,有时一个控制器可以向另一个控制器发送事件。
MVC 是否通常定义控制器应如何与控制器通信?控制器可以成为层次结构中更高级别控制器的模型吗?
示例 假设我有一个窗口(由控制器/模型/视图表示),并且该窗口能够启动另一个子窗口。子窗口是模态的,将接受某些输入。输入会影响主窗口中的某些进程。
【问题讨论】:
-
为什么您的控制器需要与另一个控制器通信?
-
您能否举例说明何时可能希望使用一个控制器与另一个控制器通信?您可能只是与控制器处理请求的模型进行通信。
-
根据要求添加示例。
-
除了jgauffin建议的模式,还可以看看delegate模式。 Apple 严重依赖这种模式来完成您想要的工作,其中较高级别的控制器充当较低级别控制器的代表。
标签: model-view-controller design-patterns