Design Pattern | State Pattern(ステートパターン)

Stateパターンとは?

  • Stateという英単語は状態という意味である。
  • Stateパターンは、状態をクラスとして表現し、クラスを切り替えることで「状態変更」を表す方法である。
  • GoFのデザインパターンでは、振る舞いに関するデザインパターンに分類される。

Stateパターンのサンプルプログラム

昼、夜の状態に応じてボタンの動作を変える金庫管理プログラムである。

Class Diagram
State Pattern Class Diagram

例では、金庫の状態変化を管理し警備センターと連絡するContextインターフェース、各状態での振る舞いを表すStateインターフェース、昼と夜の具象状態、現在状態へ処理を委譲するUIコンテキストを定義する。

メリット

状態ごとの振る舞いを条件分岐に散らばらせず、状態クラスに集められる。状態の追加や変更がしやすくなり、Contextは状態遷移と委譲に集中できる。