【发布时间】:2019-06-06 12:49:38
【问题描述】:
我从其他来源了解到,对象相互了解并不是一个好主意,尤其是同一级别的对象。它应该更像层次结构。
我的问题非常独特,因为我还没有找到解决方法。此外,我很不幸遇到任何专门解决我的问题的主题。
问题
我正在构建一个国际象棋应用程序,并且正在构建该应用程序的模型。现在我有一个抽象对象,例如Piece,其他部分如Queen、Knight 和其余部分将继承自。
我还有一个Board 类,它处理所有棋盘模型和游戏状态。现在我的每一件作品都有一个generateMove() 方法来计算从他们的位置可能的移动,为此他们需要知道棋盘的状态。此外,Board 在启动时也会对 Pieces 进行实例化。
问题 我是否继续通过例如实例化 Pieces
public class ChessBoard{
Boardbit = 64bit
Knight = new Knight(start_position, this)
//calculate
}
然后在 Knight 类方法中
public long generateMove(ChessBoard);
如果没有,我还有什么其他方法可以解决?
【问题讨论】:
标签: oop design-patterns chess