如何返回特定的类

时间:2015-05-19 21:10:55

标签: java

所以我有一个游戏类

public class Game {

public Game(int id){
    this.gameId = id;
    Waiting(); //TODO - Change place
} }

用法:Game game1 = new Game(1);

我正在努力让游戏经理返回特定的游戏类。

示例:getGame(1);

所以我尝试了这个:

    public Game getGame(int id){
      Game game = getGame(id);
      return game;
    }

我意识到它无法正常工作,因为我正在创建一个带有id的Game实例,并且我希望得到一个现有的Game实例。我没有一个关于如何解决这个问题的线索。

1 个答案:

答案 0 :(得分:0)

最常见的解决方案:单一设计模式,Map包含所有实例:

class Game {
    private static final HashMap<Integer , Game> games = new HashMap<>();

    public static Game getGame(int i){
         if(games.get(i) == null)
             games.put(i , new Game(i));

         return games.get(i);
    }
}