1

代わりにplay()stop()pause()関数を書くことはできませんか?
これを行うためにステートマシンを使用する利点は何ですか?

4

1 に答える 1

0

あなたの場合の主な利点は、各状態がどのアクションが有効であり、ステートマシンがそれらにどのように反応するかを決定することです。

非常に単純なモデルでは、ステートマシンに状態があります

  • 遊ぶ
  • 一時停止
  • 遊んでいない

これらの各状態は、どのアクションが有効であるかを定義します。Playing状態でPlay()の呼び出しを許可することは意味がありません。また、Stop()を再生されていない状態で許可することも意味がありません。ステートマシンは、どのアクションがどの状態で有効であるかを把握するのに役立ちます。

ちなみに、すべてのプログラムは一種のステートマシンですが、すべてのプログラムが1つをモデルにしているわけではありません。モデルを作成することにより、コードは自動的により構造化され、読みやすさが向上します。

于 2012-09-07T08:10:42.237 に答える