Stateパターンを使った場合のソースを上げとく。
インタフェースの使い方として参考になるかも。

public interface IState {
 public boolean isStop();
 public void next(IContext context);
 public Color getColor();
}

public interface IContext {
 public void setState(IState state);
}

public class RedState implements IState {

 public RedState() { }
 public boolean isStop(){ return true; }
 public Color getColor() { return Color.red; }
 public void next(IContext context) { context.setState(new BlueState()); }
}

public class BlueState implements IState {

 public BlueState() { }
 public boolean isStop(){ return false; }
 public Color getColor() { return Color.blue; }
 public void next(IContext context) { context.setState(new YellowState()); }
}

public class YellowState implements IState {

 public YellowState() { }
 public boolean isStop(){ return true; }
 public Color getColor() { return Color.yellow; }
 public void next(IContext context) { context.setState(new RedState()); }
}