
392
10
章
面倒なことになる
面倒な「状態」
綿密な方法論を使ってガムボールマシンのコードを書いたからといって、拡張が簡単
になるわけではありません。自分が書いたコードを見直して、修正するには何をしなけ
ればならないか考えてみましょう。
final static int SOLD_OUT = 0;
final static int NO_QUARTER = 1;
final static int HAS_QUARTER = 2;
final static int SOLD = 3;
public void insertQuarter() {
//
ここに
25
セント投入コードが入る
}
public void ejectQuarter() {
//
ここに
25
セント返却コードが入る
}
public void turnCrank() {
//
ここにトランクを回すコードが入る
}
public void dispense() {
//
ここに販売コードが入る
}
まず、ここに新しい
WINNER
状態を追加する必要
があります。これはそれほど大変ではありません。
しかし、すべてのメソッドに新しい条件文を追加し
て
WINNER
状態に対処する必要があります。大量の
コードを修正しなければいけません。
turnCrank()
では、
WINNER
状態になったかどうかを
調べて
WINNER
状態か
SOLD
状態のどちらかに移行す
るコードを追加する必要があるため、特に面倒です。
A.
このコードは確かに開放
/
閉鎖原則に従って
いない。
B. ...