我认为使用this
作为类参数是不错的,因为如果对象的初始化顺序不正确,可能会出现错误。
避免这种情况的最佳做法是什么?
示例:
public class Game{
private Player p1, p2, currentPlayer;
private Board board;
Game() {
board = new Board(this);
}
private boolean hasFieldsToBeClicked() {
return board.checkFieldsToBeClicked();
}
答案 0 :(得分:6)
从设计的角度来看:不要在这里做!
含义:Board
表示板。你的国际象棋棋盘是否了解你现在拥有的游戏?
换句话说:传递this
可以没问题,但正如您所指出的,它也可能是一个问题。因此,最佳做法是:只有在有充分理由的情况下才能通过this
。特别是当它出现在构造函数中时,this
仍处于初始化过程中。
让棋盘了解正在进行的游戏并不是一个很好的理由。
请记住:您的类/对象应建模现实世界。只建立有意义的关系!
所以这里真正的答案是调查为什么你的Board类需要了解Game类,然后摆脱这种依赖。
答案 1 :(得分:0)
1)建造者如何创造游戏和董事会而不是另一个。然后,构建者可以在游戏中设置棋盘,在棋盘中设置游戏。
2)看起来董事会是游戏的固有部分。