【发布时间】:2015-05-13 19:48:03
【问题描述】:
我正在将 Java 国际象棋游戏作为一个 uni 项目制作,我基本上是从使用 GUI 的玩家那里获得的。
我的游戏有几个类,但主要的类是 Pieces、HumanPlayer 和 GraphicalDisplay 类。
我基本上在做的是,当 HumanPlayer 想要移动时,它目前正在使用一个名为 PieceController 的类,它使用 PieceModel 类和 GraphicalDisplay 类作为模型和视图。
问题是我必须编写代码来设置,例如,MouseListeners 到模型类中国际象棋网格中的某些单元格(包含在一个名为 cellHolder 的二维数组中)。这是因为包含向单元格添加侦听器的代码也会更改数据的状态,然后用于在 GUI 中显示游戏。
这导致了一个问题。 cellHolder 对象是在 GraphicalDisplay (GUI) 类中创建的,但它也在模型中使用,因此模型使用来自视图的数据。
如果不必共享(或作为参数传递)cellHolder,我真的想不出另一种方法。
关于如何改进当前 MVC 设计的任何建议?
【问题讨论】:
标签: java user-interface model-view-controller chess