8

興味深いまたは複雑な状態遷移を解決または単純化するために State デザイン パターンが使用された例を探しています。3 つまたは 4 つの単純な状態の例はたくさんあります。しかし、サブステートといくつかの遷移を含む実際のプロジェクトのコードはどうでしょうか? パターンの使用を実際に動機付けるコードの種類。コードへのボーナスポイントポインタ!

4

2 に答える 2

16

私がこれまで見てきた State Pattern の実際の使用例の 1 つは、オンライン ビデオを再生できるビデオ プレーヤーでの使用です。

再生中、一時停止中、バッファリング中、接続中、検索中、さらにはその他の状態を処理する必要があります。

プレーヤーが再生状態または一時停止状態にある場合、プレーヤーはユーザー インタラクション イベントに応答します。
プレーヤーが「接続中」状態の場合、ビデオの長さを知るのに十分なデータがない可能性があるため、シーク バーを無効にする必要があります。
プレーヤーが接続されると、バッファリング状態に移行します。バッファリング状態では、ユーザーはビデオをシークまたは停止できます。しかし、ビデオを一時停止または再生しようとすると、コマンドは後で使用できるように保存されるため、バッファリングが完了すると、ビデオが一時停止されるか再生が開始されます。等

于 2010-09-22T12:15:32.803 に答える