
384
10
章
状態マシンの復習
状態マシンの基礎
25
セントを投入する
25
セントを取り出す
ハンドルを回す
これらのアクションは、ガム
ボールマシンのインタフェー
ス(ガムボールマシンで実行
できること)です。
どのようにして、この状態図から実際のコードを作成していけばよいでしょう
か?
状態マシンを実装するための概要を示します。
まず状態を集める。
1
ガムボール
販売
25
セント
未受領
25
セント
受領
ガムボール
なし
これらは状態です。全部で
4
つです。
次に、現在の状態を保持するためのインスタンス変数を作成し、状態ごとの値を定義する。
2
final static int SOLD_OUT = 0;
final static int NO_QUARTER = 1;
final static int HAS_QUARTER = 2;
final static int SOLD = 3;
int state = SOLD_OUT;
一意な整数で表現された各状態。
訳注:米国の
25
セント硬貨は
Quarter
と呼ばれています。
現在の状態を保持するインスタンス変数です。最初に
箱から取り出して電源スイッチを入れたときには、マ
シンは空の状態なので、この変数を「売り切れ」に設
定します。
次に、このシステムで起こり得るすべてのアクションを集める。
3
図を見ると、どのアクションを行っても
状態が遷移します。
ガムボールを出す
「ガムボールを出す」は、どちらかとい
うとマシンがマシン自身に対して行う内
部アクションです。
「ガムボールなし」は短く「売り切れ」 ...