
you are here
395
10
章
State
パターン
State
インタフェースと
State
クラスを定義する
insertQuarter()
ejectQuarter()
turnCrank()
dispense()
<<interface>>
State
HasQuarterState
insertQuarter()
ejectQuarter()
turnCrank()
dispense()
NoQuarterState
insertQuarter()
ejectQuarter()
turnCrank()
dispense()
SoldOutState
insertQuarter()
ejectQuarter()
turnCrank()
dispense()
public class GumballMachine {
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;
int count = 0;
そして、それぞれの状態を
クラスに直接対応させます。
すべての状態用のインタフェースです。メソッドはガムボールマシン
で起こり得るアクションと直接対応しています(これらのメソッド
は、前に書いたコードのメソッドと同じです)。
最初に、すべての状態クラスが実装する
State
インタフェースを作成しましょう。 ...