我想问一下,从设计模式的角度来看,将 GUI 的 listeners 放在“view”或“controller”中哪个更好。一位同事认为“风景”是最自然的地方,但我不太确定。
最佳答案
如果您正在谈论 Swing,那么 previously discussed ,Java中的MVC并不像模式所暗示的那样清晰和简单。那么,要回答您的问题,取决于您如何针对特定应用程序定义“ View ”和“ Controller ”,以及您将其中一个或另一个“放置监听器”的意思。
我认为监听器是 Controller 机制的一部分——它们在 View (显示当前状态)和模型(维护当前状态)之间提供了一种松散的耦合,并提供了一种方法两者进行互动。然而,大多数 Swing 监听器都非常紧密地绑定(bind)到 UI 事件 - 单击鼠标按钮、从列表中选择项目等 - 因此您可能需要创建一个额外的抽象层来接收这些 UI 事件,这些事件由监听器捕获,并将它们转化为对您的应用程序领域更通用的内容。例如,EJB 可以为某些业务逻辑提供通用接口(interface),这些业务逻辑可能由 Swing UI 或通过 Web 服务的 API 调用触发。然后, Controller 就是 EJB,触发对该 EJB 的调用的 Swing 事件监听器位于 View 中。
关于java - MVC 和 Java GUI 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839885/