後,這是我在僞情況:做一些方法返回
function onRequest() {
receiveConnectionRequest();
response = function onConnect() {
playersConnected++;
if (playersConnected == 4) {
sendAllPlayersTheirCards()
}
return OK;
}();
sendResponse(response);
}
當玩家1-3連接,它們會加入到玩家的列表,並確定被歸還給他們,在這一點上,他們將設置填補他們的一面。然而,當玩家4連接時,在發送對他的請求的響應之前,所有玩家都被髮送他們的卡。因爲玩家4還沒有收到他的請求的迴應,所以他還沒有正確地初始化並且在收到他的卡時出錯。
我想有是這樣的:
function onRequest() {
receiveConnectionRequest();
response = function onConnect() {
playersConnected++;
if (playersConnected == 4) {
plan(sendAllPlayersTheirCards())
}
return OK;
}();
sendResponse(response);
executePlanned() // now cards are sent
}
是否有一個通用的模式是什麼? onConnect函數位於不同的類中,不應該知道onRequest的實現細節。
我特意試圖在Java中實現這一點,但通用的解決方案是值得歡迎的。
貌似代表團。 plan()在這裏設置委託,executePlanned()調用排隊的動作。 – Sorpigal 2010-11-29 17:06:37