【发布时间】:2010-05-22 06:11:13
【问题描述】:
我有一个关于将 MVC 框架用于我用 java 编写的二十一点游戏的问题。据我了解,我的模型将是一个存储游戏状态的类,更具体地说,是每个玩家手的状态。在模型类中,我将有一个侦听器数组,每次游戏状态发生变化时都会通知它们(即玩家抽到一张新牌)。
这些侦听器将是我的查看器,它是处理游戏显示的类。此类将实现 ActionListener 接口,并且每次模型更改时,它都会调用/“通知”我的查看器的 actionPerformed 方法。
我的问题如下: 我打算有两个 JPanel,每个都专门用于显示各自玩家的手牌。当玩家抽出一张新牌时,一个新的 ImageIcon 将被添加到面板中。我的问题是查看器类如何知道已将哪张牌添加到玩家的手上?
我想我可以在通知事件之前存储玩家的手,然后在通知事件发生时,将新状态与旧状态进行比较,以找出发生了什么变化。我在这里完全是新手,所以我可能完全错了,但这样做似乎有点乏味。
是否有更有效/更常见的方法来检测模型在前后状态之间发生了什么变化?另一种解决方案是在每次通知发生时重新绘制整个面板?这会是一个更好的主意吗?
【问题讨论】:
标签: java model-view-controller