2013-10-28 145 views
-5

我正在創建一個雙人遊戲,我希望能夠限制用戶創建其他玩家對象。井字遊戲中的對象創建

public class Player { 
    Symbol symbol; 

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

如果我有一個公共的構造這樣,用戶可以隨時創建對象和將沒有辦法限制呢?

編輯:

提取由枚舉型

public enum Symbol { 
    X, O; 
} 

球員我希望能夠從這裏得到象徵,它創建時將其分配給玩家的對象。

+0

見單身或工廠模式 –

+1

除非你提供某種控制檯,玩家可以在Java代碼中鍵入您盲目執行,他們不會要能夠創建對象。玩家不是程序員。他們無法訪問遊戲代碼中使用的數據結構。 –

+0

@JohnKugelman我不太清楚你的意思。就我們所知,OP可能會創建一些其他人將使用的庫,在這種情況下,這可能是一個有效的關注點。 – arshajii

回答

4

可以使用​​:

class Player { 

    private static int players = 0; 

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

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

     throw new TooManyPlayersException(...); 
    } 

} 
+0

Downvoter:請發表評論。 – arshajii

+1

Arshajii考慮了有意義問題的解釋(即OP *意味着*「程序員」......併爲該問題的解釋提供了一個很好的答案。他**不值得*嘗試*瞭解OP的真正要求。 –

+0

看到我上面的評論。這裏有一個巨大的[XY問題](http://mywiki.wooledge.org/XyProblem)。 –