2010-09-22 64 views
4

我正在尋找狀態設計模式已被用來解決或簡化有趣或複雜的狀態轉換的例子。有很多三個或四個簡單狀態的例子。但是那些具有子狀態和不止一些轉換的實際項目代碼呢?實際激發模式使用的代碼類型。獎金指向代碼的指針!給我一個現實生活,非平凡的使用狀態模式

回答

11

迄今爲止,我所見過的狀態模式的一種實際使用是在能夠播放在線視頻的視頻播放器中。

你必須處理播放,暫停,緩衝,連接,尋求甚至其他狀態。

當播放器處於播放或暫停狀態時,它響應用戶交互事件。
當玩家處於「連接」狀態時,它可能沒有足夠的數據來知道視頻持續時間,因此應禁用搜索欄。
一旦玩家連接,它將移動到緩衝狀態。在緩衝狀態下,用戶可以尋找或停止視頻。但是如果他試圖暫停或播放視頻,那麼稍後會保存該命令,以便在緩衝完成後,視頻暫停或開始播放。等

1

紅綠燈系統(時間觸發|傳感器[事件]觸發)

美國:紅,黃,綠(最簡單的例子)

過渡:一個計時器改變之後紅色變爲綠色,綠色變爲黃色,黃色變爲紅色。