2011-07-07 35 views
0

只是想找点理论来维护某些东西在Spring应用程序中的状态。在弹簧应用程序中维护状态?

例如想象一个扑克游戏作为一个web应用程序运行。有很多事情需要考虑。例如保持玩家掌握的扑克筹码数量,参与手牌的人数,每位玩家的卡牌价值以及共享的公共牌。赌注金额,筹码总额等。

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

无论执行游戏循环的逻辑是什么,最好的方式是跟踪扑克牌的状态以及使用弹簧扑克的完整游戏。

在此先感谢。

回答

1

跟踪Web应用程序中的任何数据的方式相同;编写一个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); 
    } 
} 

每当玩家采取行动改变他们向网络应用程序发出请求。你将不得不跟踪几件事情的状态,而你显然将不得不担心同步球员之间的状态。