我正在创建一个双人游戏,我希望能够限制用户创建其他玩家对象。
public class Player {
Symbol symbol;
public Player() {
symbol = Symbol.X;
}
}
如果我有这样的公共构造函数,用户可以继续创建对象,并且没有办法限制它吗?
编辑:
从枚举中提取玩家
public enum Symbol {
X, O;
}
我希望能够从这里获取符号,并在创建时将其分配给玩家对象。
答案 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(...);
}
}