我用Java制作游戏(这是我第一次使用Java和面向对象的语言)。游戏实现了MVC设计模式。现在我有一个问题。我可以在模型和视图之间使用模式Oserver / Observable(对于我使用Swing的库的视图)和View和Controller之间的监听器吗? View有很多按钮。在游戏过程中,有一些地图和道路。玩游戏的玩家必须点击某个区域或道路,然后决定要采取的行动。什么是最好的解决方案?如果你不明白,我会尝试更好地解释游戏。 谢谢您的帮助。
答案 0 :(得分:1)
Java中的Observer模式是使用事件和侦听器实现的。你只需要set up listeners for the events你想要的,而你就不在了。
java.util.EventObject
的参数,这些参数包含有关特定事件的信息。WindowListener
为具有多个侦听器方法的接口提供预先实现的超类,允许您继承并仅实现所需的一个或两个。例如,在按钮上收听点击事件:
button.addActionListener(new ActionListener(){ // this is an "anonymous class"
@Override public void actionPerformed(ActionEvent arg0) {
// TODO: do something
}
});
您也可以生成自己的事件源,因此您可以始终使用Observer模式来监视对象的更改并更新UI,还可以对UI事件做出反应。 "监听"不是正式的GOF模式,但在Java中,侦听器指的是用于响应事件的接口和对象。