我在想,如果一个类只在另一个类中实例化,那么在该类中使用它是正确的。我认为这将有助于我们进行良好的设计。当我查看我的项目时,我几乎从未见过这样的嵌套结构。但是如果我尝试嵌套类,那么这次我脑海中会出现另一个问题。例如
我有 Board 类、Move 类,如 ShortCastle、LongCastle、EnPassant、Promote 和 Pawn、Queen、Rook、Knight 等棋子。所以很明显 Board 类将实例化 Piece 类,而 Piece 类将实例化 Move 类。对于一个好的设计,Promote move 类应该嵌套在 Pawn 中,因为只有 pawn 才能提升自己。短和长 Castles 应该嵌套在 King 中,因为只有 King 才能有这种类型的动作。
尝试将所有 Piece 类放入 Board 类看起来并不好设计,因为 8-9 类将在 Board 类中,并且它真的会烦人 Board 类文件太大且难以阅读。我更喜欢将每个 Piece 类保留在另一个文件。很好,我们可以创建部分 Board 类,但仍然不是很烦人 8-9 Partial Board 类文件将包含每个部分类?不让它们嵌套更好吗?Pieces 也一样 为另一个 Move 类型类创建另一个部分 Piece 文件?如果嵌套类只占用很小的空间,那么它不会有任何问题,但如果它需要很多方法?