
394
10
章
新しい状態設計
新しい設計
1
まず、ガムボールマシンの各アクション用のメソッドを含む、
State
インタフェースを定義する。
2
そして、マシンの各状態に対する
State
クラスを実装する。これらのクラ
スは、対応する状態にあるマシンの振る舞いを担う。
3
最後に、すべての条件コードを取り除き、代わりに処理を状態クラスに委
譲する。
新たな計画では、既存のコードを維持するのではなく、状態オブジェクトをそれぞれのクラ
スにカプセル化し、アクションが起きたときには現在の状態に委譲するようにコードを作り直
そうと考えています。
ここでは設計原則に従っているので、最終的には将来の保守がより容易な設計になるはずで
す。その手順を紹介します。
設計原則に従っているだけでなく、見てのとおり、実際には
State
パターンを実装しています。
しかし、
State
パターンの正式な構成要素はコードを作り直してから説明することにしましょう。
今度は状態のすべ
ての振る舞いを
1
つのクラス
にまとめようとしているんだ。この
ようにして、振る舞いを局所化し、
変更や理解を簡単になるようにし
ているんだ。