Say I have this code.
public interface State {
void processOne();
void processTwo();
void processThree();
}
public class AStateImplOne implements State {
@Override
public void processOne() {
doStuff();
}
@Override
public void processTwo() {
doStuff();
}
@Override
public void processThree() {
doStuff();
}
private void doStuff() {}
}
public class AStateImplTwo implements State {
@Override
public void processOne() {
doStuff();
}
@Override
public void processTwo() {
doStuff();
}
@Override
public void processThree() {
doStuff();
}
private void doStuff() {}
}
public class StateMachine {
private State one = new AStateImplOne();
private State two = new AStateImplTwo();
private State state;
public int loop() {
checkState();
state.processOne();
state.processTwo();
state.processThree();
return 0;
}
private void checkState() {
if (condition) {
state = one;
} else {
state = two;
}
}
}
I don’t think this is right - you should class processTwo from processOne directly and so on so forth. Any pointers? Thanks.