public interface State {
public void handle(String sampleParameter);
}
public class ConcreteStateA implements State {
@Override
public void handle(String sampleParameter) {
System.out.println("ConcreteStateA handle ��" + sampleParameter);
}
}
public class ConcreteStateB implements State {
@Override
public void handle(String sampleParameter) {
System.out.println("ConcreteStateB handle ��" + sampleParameter);
}
}
public class Context {
private State state;
public void setState(State state) {
this.state = state;
}
public void request(String sampleParameter) {
state.handle(sampleParameter);
}
}
public class Client {
public static void main(String[] args) {
State state = new ConcreteStateB();
Context context = new Context();
context.setState(state);
context.request("test");
}
}
Code address: lennon