如何避免"this"作为Class参数

Fab*_*den 2 java constructor

我不认为它非常适合this用作类参数,因为如果对象的初始化顺序不正确,可能会出现错误.

什么是避免这种情况的最佳做法?

例:

public class Game{

    private Player p1, p2, currentPlayer;
    private Board board;

    Game() {
        board = new Board(this);
    }

    private boolean hasFieldsToBeClicked() {
            return board.checkFieldsToBeClicked();
        }
Run Code Online (Sandbox Code Playgroud)

Gho*_*ica 6

从设计的角度来看:就是不要在这里做!

含义:a Board代表董事会.你的国际象棋棋盘是否了解你现在拥有的游戏?

换句话说:传递this可以,但正如你所指出的,它也可能是一个问题.因此,最佳做法是:只有this在你有充分理由的情况下才能通过.特别是当它出现在构造函数中并且this仍处于初始化过程中时.

让棋盘了解正在进行的游戏并不是一个很好的理由.

请记住:您的类/对象应该模拟现实世界.只建立有意义的关系!

因此,这里真正的答案是寻找到为什么你的板子类需要了解的游戏类,然后以摆脱依赖.