06/06/04 20:30:10
たとえば後からStateに夕方を追加したくなったとすると
Stateを使わない方法では
1.currentStateに状態をセットする箇所に夕方の場合を追加
2.showMessageの中のifやswitchに夕方の場合を追加
showMessage以外にも似たメソッドがあったらそれら全ての中のswitch文を更新しなきゃならん。
つまり2の作業があちこちに散らばっていて見落としが起こりがちだし
ちょっと間違えると既存の朝昼夜の動作にもに影響が出かねない。
Stateクラスとしてまとまっている方法では
1.currentStateに状態をセットする箇所に夕方の場合を追加
2.夕方クラスを追加
クラスを増やすぶん、追加すべきコード量自体はむしろStateを使わない場合より多くなりそうだが
2の作業については変更箇所が新規クラスの追加という形で一箇所にまとまっているため
既存の朝昼夜は基本的に触らなくてすむ。