javaでのStateパターン

Stateパターンとはデザインパターンの一種で、1つ1つの状態をそのままクラスとして表現するパターンです。
通常のコーディングだとIF文で状態毎の処理を記述させるためそれぞれの状態でどのような処理が行われるのか読み取りにくいのですが、このパターンを適用すれば状態遷移図上の状態とクラスが1対1で結びつくようになるので、処理が単純明快になります。

今回は、朝・昼・夜の各状態で出現モンスターが変わるサンプルコードを作成してみました。
このパターンは記述内容としては決して難しくないので、サンプルコードを見た方が理解が早いと思います。

【サンプルコード】

・StateEnum.java

・State.java

・UnknownState.java

・MorningState.java

・DayState.java

・NightState.java

・Context.java

・StateMain.java

【実行結果】


いかがでしたでしょうか。

設計を行う際に、状態遷移図を書くことがあると思います。
その状態遷移図をコードとして表したものが、Stateパターンです。
コードの可読性が上がるだけでなく、状態を追加するような時にも影響を局所化できるので、覚えておいて損は無いパターンだと思います。

次回は、Commandパターンについて取り扱いたいと思います!

カテゴリーjava

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA