MVC java,控制器可以监听其他控制器吗?必须初始化所有控制器吗?

MVC java,控制器可以监听其他控制器吗?必须初始化所有控制器吗?,java,model-view-controller,structure,Java,Model View Controller,Structure,我不熟悉在面向对象环境中使用MVC。有关此主题的其他问题未能回答控制器特定的问题 我对MVC的想法是控制器保持其关联视图(使用观察者设计模式,控制器侦听视图中的动作事件)。但是,在我的初始“启动菜单视图”中,控制器侦听并处理“注册”和“登录”事件。我还有一个叫做“快速构建”的按钮,它绕过了注册和登录。此“快速生成”按钮触发事件以使用不同的控制器/视图。逻辑解决方案是实例化新控制器,并在按下按钮时将其视图显示为事件。然而,MVC似乎更喜欢让我的第二个控制器监听第一个控制器,这需要它已经被实例化。在

我不熟悉在面向对象环境中使用MVC。有关此主题的其他问题未能回答控制器特定的问题

我对MVC的想法是控制器保持其关联视图(使用观察者设计模式,控制器侦听视图中的动作事件)。但是,在我的初始“启动菜单视图”中,控制器侦听并处理“注册”和“登录”事件。我还有一个叫做“快速构建”的按钮,它绕过了注册和登录。此“快速生成”按钮触发事件以使用不同的控制器/视图。逻辑解决方案是实例化新控制器,并在按下按钮时将其视图显示为事件。然而,MVC似乎更喜欢让我的第二个控制器监听第一个控制器,这需要它已经被实例化。在这种情况下,我将实例化main方法中的所有控制器,并传递它们的侦听器(包括我的第二个控制器,在“快速构建”事件中侦听第一个控制器)

这些都重要吗!?还是我想得太深了?我这样问是因为我不确定MVC架构需要有多严格


PS我看过的所有面向对象编程(OOP)MVC教程都是基础教程,没有演示如何处理多个控制器,所以我自己还没有找到这些信息。这个问题及其答案将有助于初学者软件开发人员,他们希望在OOP环境中理解MVC的高级概念

,因为您说在第一个视图中有一个快速构建选项,然后它的控制器应该处理它,并启动到第二个视图的导航,第二个控制器将处理并填充第二个视图。好的,我明白了,所以第二个控制器不监听第一个控制器,第一个控制器应该显示新视图,第二个控制器然后处理在新视图中执行的任何操作。我确实明白你的意思,但是实例化怎么样。您是将第二个控制器的实例实例化为第一个控制器操作的一部分,还是最好在程序开始时实例化所有控制器和侦听器?谢谢你的知识,我将立即实施。这取决于你的设计,所以你的第二个问题没有确切的答案。对于web应用程序,Servlet(控制器)是在初始化应用程序时创建的,然后每次都被重用。哦,我明白了,所以通常这取决于应用程序的类型,我们可以选择如何实现这些细节?我希望这对任何一个新读到这篇文章的人都有用:那么,我的问题的一个有效结论是什么;实例化取决于您的特定应用程序。MVC架构并没有具体说明这些细节。只要控制器在视图中侦听事件,在模型中封装数据,并且视图仅显示和检索数据,那么您就正确地使用了MVC?您的最后一句话是正确的,这取决于应用程序设计。