在弹簧应用中维持状态?

时间:2011-07-07 12:29:35

标签: java spring session javabeans state

如果有关于在弹簧应用中保持某些状态的理论,请稍等一下。

例如,想象一下作为网络应用程序运行的扑克游戏。有许多事情需要考虑。例如,保持玩家拥有的扑克筹码的数量,参与牌的扑克筹码,每位玩家的牌值以及共享社区牌。下注金额,彩票总数等。

要考虑的其他事项是玩家在折叠前必须采取行动的时间分配。

无论执行游戏循环的逻辑如何,最好的方法是跟踪扑克之手的状态,以及使用spring进行完整的扑克游戏。

提前致谢。

1 个答案:

答案 0 :(得分:1)

跟踪网络应用中的任何数据的方式相同;编写DAO接口然后创建实现。例如;

public class PokerHand {
  //just a POJO
}

public interface PokerHandDAO {
  public PokerHand getPokerHand(long id);
  public void updatePokerHand(PokerHand hand);
}

public class InMenoryPokerHandDAO implements PokerHandDAO {
  private static Map<Long,PokerHand> hands = new HashMap<Long,PokerHand>();

  @Override
  public PokerHand getPokerHand(long id) {
    return hands.get(id);
  }

  @Override
  public void updatePokerHand(PokerHand hand) {
    hands.put(hand.getId(), hand);
  }
}

每当玩家采取行动进行更改时,他们都会向网络应用发出请求。你将不得不追踪几件事情的状态,你显然不得不担心玩家之间的状态同步。