【问题标题】:Maintaining state in a spring application?在 Spring 应用程序中维护状态?
【发布时间】:2011-07-07 20:42:33
【问题描述】:

只是寻找一些关于在 Spring 应用程序中维护某物状态的理论。

例如,想象一个作为网络应用程序运行的扑克游戏。有很多事情需要考虑。例如维护玩家在一手牌中的扑克筹码数量、参与一手牌的玩家、每位玩家的牌面值以及共享的公共牌。下注金额、底池总数等。

其他需要考虑的事情是玩家在被弃牌前必须采取行动的时间分配。

无论执行游戏循环的逻辑如何,使用 spring 来跟踪扑克手状态和完整扑克游戏状态的最佳方法是什么。

提前致谢。

【问题讨论】:

    标签: java spring session javabeans state


    【解决方案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);
      }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多