2011-07-07 36 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); 
    } 
} 

每當玩家採取行動改變他們向網絡應用程序發出請求。你將不得不跟蹤幾件事情的狀態,而你顯然將不得不擔心同步球員之間的狀態。