【ステートパターン】
Stateパターン とは?
最終更新:
💡 同じ購入ボタンでも、今の状態によって返事が変わる
現在の状態に応じた動作を、状態ごとのクラスに任せる設計パターン。自動販売機の例で、処理の委譲と状態の切り替え、条件分岐との使い分けを説明します。
📌 このページのポイント
Stateパターンは、どういうときに使うの?
例えば自動販売機の購入ボタンだよ。待機中なら入金を促し、入金済みなら商品を渡し、売り切れなら購入できないと伝える。同じ操作でも今の状態で動作が変わるんだ。
それをどうコードで分けるの?
状態は勝手に切り替わるの?
切り替える条件や遷移先も設計が必要だよ。本体で参照を変える方法や、状態側が次の状態を知らせる方法などがある。状態を追加すると、既存の遷移も見直す場合があるんだ。
if文より、いつも優れている?
まとめ:ざっくりこれだけ覚えればOK!
「Stateパターン」って出てきたら「今の状態のクラスに動作を任せる設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「State Pattern」 = 状態に応じて動作を切り替える設計パターン
💬 Stateは状態のこと。状態ごとの動作をオブジェクトに分け、本体が現在の状態へ処理を任せる構造です。