我正在用 Java 制作游戏(这是我第一次使用 Java 和面向对象语言)。游戏实现了MVC设计模式。现在我有一个问题。我可以在模型和 View (对于我使用 Swing 库的 View )之间使用 Oserver/Observable 模式,在 View 和 Controller 之间使用 Listener 模式吗? View 有很多按钮。游戏过程中会有一张带有一些区域和道路的 map 。要玩游戏,玩家必须单击一个区域或一条道路,然后决定要执行的操作。最好的解决方案是什么?如果您不明白,我会尽力更好地解释游戏。 谢谢您的帮助。
最佳答案
Java 中的观察者模式是使用事件和监听器来实现的。您只需要set up listeners for the events你想要,而你却离开了。
- 事件传递(到监听器方法)一个继承自
java.util.EventObject
的参数,这些参数包含有关特定事件的信息。 - 监听器是一个对象(具体的或匿名的),它实现监听器接口(interface),其中包含事件发生时调用的一个或多个方法
- Adapter classes ,例如
WindowListener
为具有多个监听器方法的接口(interface)提供预实现的父类(super class),允许您继承并仅实现您想要的一两个。 - 事件监听器经常使用 anonymous classes 来实现
例如,监听按钮上的点击事件:
button.addActionListener(new ActionListener(){ // this is an "anonymous class"
@Override public void actionPerformed(ActionEvent arg0) {
// TODO: do something
}
});
您还可以生成自己的事件源,因此您可以在整个过程中使用观察者模式来监视对象的更改并更新 UI,并对 UI 事件使用react。 “监听器”并不是正式的 GOF 模式,但在 Java 中监听器指的是用于对事件使用react的接口(interface)和对象。
关于java - 我可以在 MVC Java 中使用 Observer/Observable 和 Listener 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857102/