Java MVC:这个函数应该在控制器中还是在模型中

Java MVC:这个函数应该在控制器中还是在模型中,java,model-view-controller,model,controller,Java,Model View Controller,Model,Controller,我想根据MVC模式制作一个简单的游戏。游戏是一个网格,玩家可以在该网格上交换邻居的单元格 我的问题是: 我应该检查控制器或模型中的单元是否为相邻单元 我想说的是,我应该在模型中有一个swapCells(cell1,cell2)函数,控制器应该检查这两个单元格是否是邻居(因为在我脑海中,交换邻居单元格的能力听起来像是一种权限,而不是与数据相关的东西)。但我不能肯定 谢谢。应在控制器中检查用户操作是否有效,因此,如果要实施swapCells(cell1、cell2)应在控制器中检查相邻的两个单元格

我想根据MVC模式制作一个简单的游戏。游戏是一个网格,玩家可以在该网格上交换邻居的单元格

我的问题是:

我应该检查控制器或模型中的单元是否为相邻单元

我想说的是,我应该在模型中有一个
swapCells(cell1,cell2)
函数,控制器应该检查这两个单元格是否是邻居(因为在我脑海中,交换邻居单元格的能力听起来像是一种权限,而不是与数据相关的东西)。但我不能肯定


谢谢。

应在控制器中检查用户操作是否有效,因此,如果要实施
swapCells(cell1、cell2)
应在控制器中检查相邻的两个单元格

但是,在这种情况下,可以完全避免对相邻单元的验证:与其将两个单元传递给模型,不如将一个单元和一个方向传递给其相邻单元:

enum DirectionToNeighbor {
    NORTH, EAST, SOUTH, WEST
}
...
swapCells(originCell, directionToNeighbor)
现在控制器不需要检查这两个单元是否相邻,因为第二个单元是隐式指定的。它需要检查的只是原始单元格不在
方向Toneighbor
一侧的边界上(即,如果
方向Toneighbor
北部
,则单元格不得在北部边界上;如果方向是
西部
,则它不得在西部边界上,以此类推)