スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Java 1.5 以降で State パターン書いてみた 2

昨日の::memolet | 今なら Javaで状態遷移はこう書けると思うよりも実際的にしてみた

class StateContext {
  private int value;

  public StateContext() {
    this.value = 0;
  }

  public int getValue() {
    return this.value;
  }

  public void setValue(int value) {
    this.value = value;
  }
}

interface StateHandler {
    public void execute(StateContext context);
}

enum State implements StateHandler {
  START {
    public void execute(StateContext context) {
      int value = context.getValue();
      System.out.printf("[%-10s] value=%d\n", this.name(), value);
      context.setValue(value + 1);
    }
  },
  SOMETHING {
    public void execute(StateContext context) {
      int value = context.getValue();
      System.out.printf("[%-10s] value=%d\n", this.name(), value);
      context.setValue(value + 1);
    }
  },
  END {
    public void execute(StateContext context) {
      int value = context.getValue();
      System.out.printf("[%-10s] value=%d\n", this.name(), value);
    }
  };
}

public class StateMachineTest2 {
  public static void main(String[] args) {
    StateContext context = new StateContext();
    State m = State.START;
    m.execute(context);
    m = State.SOMETHING;
    m.execute(context);
    m = State.END;
    m.execute(context);
  }
}
スポンサーサイト

この記事へのトラックバックURL

http://memolet.blog22.fc2.com/tb.php/1347-d11265d0

この記事へのトラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。