这是一个合适的MVC国际象棋(GUI)模型吗?

时间:2015-05-13 19:48:03

标签: java user-interface model-view-controller chess

我将Java国际象棋游戏作为一个单一的项目,我基本上是从使用GUI的玩家那里获得的。

我的游戏有几个类,但主要的类是Pieces,HumanPlayer和GraphicalDisplay类。

我基本上做的是,当HumanPlayer想要移动时,它当前正在使用一个名为PieceController的类,它使用PieceModel类和GraphicalDisplay类作为模型和视图。

问题是我必须编写代码来将MouseListeners设置为Model类中的象棋网格中的某些单元格(包含在名为cellHolder的二维数组中)。这是因为包含向单元格添加侦听器的代码也会更改数据的状态,然后用于在GUI中显示游戏。

这导致了问题。 cellHolder对象是在GraphicalDisplay(GUI)类中创建的,但它也在模型中使用,因此模型使用视图中的数据。

我无法在不必共享(或传递参数)cellHolder的情况下想到另一种方法。

有关如何改进当前MVC设计的任何建议?

1 个答案:

答案 0 :(得分:0)

点击此链接http://www.tutorialspoint.com/design_pattern/adapter_pattern.htm

关于设计模式在Java中,这个被称为"适配器模式" ..它基本上是一种软件设计模式,允许从另一个界面使用现有类的接口