0

我正在阅读一篇关于使用 Java 的 Model-View-Controller (MVC) 的开创性文章(这里的很多人在讨论 MVC 时已经提到过它)。

http://www.oracle.com/technetwork/articles/javase/mvc-136693.html

基本上,它呈现了一个修改后的 MVC 流程,模型向控制器发送通知(而不是视图,如传统方式)。然后控制器将通知传递给 View 以进行界面更新,或者解释用户交互的命令并发送回 Model。

我对控制器和视图协同工作的方式有疑问。在这篇文章中,作者在他的两个View中都保留了对Controller的引用,并在这些View中直接调用了Controller的方法。我想知道它背后的理性。为什么他没有在Controller中实现一些ActionListeners,让Views中的交互widgets向这些监听器发送信号呢?

谢谢你的帮助。

4

1 回答 1

1

这是一个耦合问题。

如果您的视图引用了它的控制器,则它与控制器耦合。如果您不希望您的视图使用不同的控制器,您会这样做。通过直接访问,可以更轻松地遵循各种代码路径。

如果你实现了一个动作监听器模式,你就是在解耦视图和控制器。视图和控制器可以独立存在,您可能会为同一个视图使用不同的控制器。

于 2012-04-09T19:29:14.857 回答