Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller MVC是否定义了一个控制器应该如何与另一个控制器通信?_Model View Controller_Design Patterns - Fatal编程技术网

Model view controller MVC是否定义了一个控制器应该如何与另一个控制器通信?

Model view controller MVC是否定义了一个控制器应该如何与另一个控制器通信?,model-view-controller,design-patterns,Model View Controller,Design Patterns,我指的是通用MVC设计模式(定义见)。在执行GUI密集型应用程序时,我通常会有许多控制器,有时一个控制器会向另一个控制器发送事件 MVC是否通常定义了控制器应如何与控制器通信?控制器是否可以是层次结构中更高层次控制器的模型 示例 假设我有一个窗口(由控制器/模型/视图表示),该窗口能够启动另一个子窗口。子窗口是模态的,将接受某些输入。输入将影响主窗口中的某些进程。否。使用MVC无法做到这一点。您希望使用某种层次结构模式,如以下两种模式之一: 不,一个控制器不能是另一个控制器的模型。控制器只

我指的是通用MVC设计模式(定义见)。在执行GUI密集型应用程序时,我通常会有许多控制器,有时一个控制器会向另一个控制器发送事件

MVC是否通常定义了控制器应如何与控制器通信?控制器是否可以是层次结构中更高层次控制器的模型

示例
假设我有一个窗口(由控制器/模型/视图表示),该窗口能够启动另一个子窗口。子窗口是模态的,将接受某些输入。输入将影响主窗口中的某些进程。

否。使用MVC无法做到这一点。您希望使用某种层次结构模式,如以下两种模式之一:


不,一个控制器不能是另一个控制器的模型。控制器只需通过Get或Post传递参数即可。参考Wiki Model–View–Controller(MVC),MVC是一种将信息表示与用户交互分离开来的体系结构

也就是说,它没有定义任何事件机制,因此没有控制器内部通信的规范

现在来回答你的问题

可以从一个控制器渲染视图,并将数据提交到另一个控制器。那应该行得通


使用
定义表单以实现此目的。

为什么您的控制器需要与另一个控制器通信?您能否举例说明您何时可能希望使用一个控制器与另一个控制器通信?您可能只是与一个模型通信,而控制器只是处理请求。示例是根据请求添加的。除了jgauffin建议的模式外,还可以查看委托模式。苹果在很大程度上依赖于这种模式来完成您想要的任务,其中更高级别的控制器充当较低级别控制器的代理。