06/06/05 11:43:58
いろいろと説明ありがとうございます。
・朝、昼、夜の状態で行いたい処理が複数ある場合はStateパターンを使う意味がある。
朝、昼、夜クラスとそれらを使うクラスの4つ
夕方が増えた場合の変更箇所 夕方クラス追加。使うクラスの分岐追加の2箇所。
・処理がshowMessage()のみの場合(処理がひとつの場合)Stateパターンを使う意味があまりない。
(状態が増える可能性はあるが処理が増える可能性はない。)
朝、昼、夜のshowMessage()メソッド3つ。
スイッチで各showMessage()をよびだす。
夕方が増えた場合の変更箇所 夕方メソッドの追加、スイッチの分岐追加の2箇所。
とゆう認識でよろしいでしょうか?
でもまだ疑問が。
いろいろサイトをみてまわったんだけど、ほとんどの所でStateパターンはifは使わないと書いてます。
でも今までのやり方だと状態を変える時結局ifが必要で、
ただのポリモルフィズムの説明に思えるんですが…