LLD - Behavioral Design Patterns — Part 1
Consider this simplified code snippet using the State pattern:
class Context {
State state;
void request() { state.handle(this); }
void setState(State s) { state = s; }
}
class State {
void handle(Context c) { c.setState(new StateB()); }
}
class StateB extends State {
void handle(Context c) { c.setState(new State()); }
}
Context ctx = new Context();
ctx.setState(new State());
ctx.request();
ctx.request();
What is the final state of ctx after these two requests?