Java 项目中的逻辑设计

Java 项目中的逻辑设计,java,Java,该项目是一个合作游戏,它使用客户机-服务器体系结构通过网络进行通信 大部分逻辑都是在Player类、Game类和Board类中进行的 游戏和棋盘处理,棋盘上的所有东西都在那里,并保存当前游戏的元数据 我检查玩家是否能够移动的逻辑是在玩家类中,即,玩家知道它是否能够朝某个方向移动,这要求玩家将棋盘作为一个场地 我的问题是,这是一个好的设计吗?如果不是,为什么不呢?在哪里有更好的逻辑 谢谢你的回答 对不起,我的上一个问题有点宽泛,而且是以观点为导向的,希望这一个不是那么宽泛,请告诉我这一个问题是否写

该项目是一个合作游戏,它使用客户机-服务器体系结构通过网络进行通信

大部分逻辑都是在Player类、Game类和Board类中进行的

游戏和棋盘处理,棋盘上的所有东西都在那里,并保存当前游戏的元数据

我检查玩家是否能够移动的逻辑是在玩家类中,即,玩家知道它是否能够朝某个方向移动,这要求玩家将棋盘作为一个场地

我的问题是,这是一个好的设计吗?如果不是,为什么不呢?在哪里有更好的逻辑

谢谢你的回答


对不起,我的上一个问题有点宽泛,而且是以观点为导向的,希望这一个不是那么宽泛,请告诉我这一个问题是否写得也很糟糕

一个玩家可能与某个特定的棋盘或游戏区域有关。你可以这样设计:玩家知道棋盘,可以查询棋盘看是否允许移动,或者你可以查询棋盘上的一块棋子是否可以移动

我认为对玩家进行检查更有意义:它知道自己的局限性。例如,在国际象棋中,棋子知道它是什么类型,以及它是否可以移动一个空格、多个空格、对角等等。因此,从这个角度来看,您的设计工作得很好

当玩家位于a板上时,你也不会问他是否可以在B板上移动


您可以随时查看开源游戏,了解其他人是如何做到这一点的:OGRE是一个开源引擎,它链接到多个实现(包括一些著名的游戏)。

它不是固执己见,而是征求意见。这不是StackOverflow的目的——您可能会更幸运地编写一些代码,然后继续提问。事实上,我认为这个问题是有意义的。它与特定的代码问题无关,但如果您查看其他标签,如
设计模式
架构
,您将只会发现类似的问题。