復習:Stateパターン

今回はStateパターンの復習です。
Stateパターンは状態をクラスとして表現することで、コードの簡略化を行なっています。
どういうことかというと、状態分岐をコードに書くとif文やswitch文を書く必要があり、冗長になってしまいます。
しかも状態をひとつ追加しようとするとif文にも変更を加えなくてはならず、保守性に欠けます。

状態をクラスとして表現し、インスタンスとして保持することで、状態変化の際には、参照するインスタンスを変更するだけでそれを表現できる、というわけです。
状態に関する情報をコードではなく、クラスそのもので表現しています。