Tic tac toe中的对象创建

时间:2013-10-28 22:40:12

标签: oop

我正在创建一个双人游戏,我希望能够限制用户创建其他玩家对象。

public class Player {
    Symbol symbol;

    public Player() {
        symbol = Symbol.X;
    }
}

如果我有这样的公共构造函数,用户可以继续创建对象,并且没有办法限制它吗?

编辑:

从枚举中提取玩家

public enum Symbol {
    X, O;
}

我希望能够从这里获取符号,并在创建时将其分配给玩家对象。

1 个答案:

答案 0 :(得分:4)

您可以使用factory pattern

class Player {

    private static int players = 0;

    private Player(...) {
        ...
    }

    public static Player newPlayer(...) {
        if (players < MAX_PLAYERS) {
            players++;
            return new Player(...);
        }

        throw new TooManyPlayersException(...);
    }

}