public class State {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public void method1() {
System.out.println("State method1");
}
public void method2() {
System.out.println("State method2");
}
}
public class Context {
private State state;
public Context(State state) {
this.state = state;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public void method() {
if (state.getValue().equals("state1")) {
state.method1();
} else if (state.getValue().equals("state2")) {
state.method2();
}
}
}
public class Test {
public static void main(String[] args) {
try {
Test test = new Test();
} catch (Exception e) {
e.printStackTrace();
}
}
public Test() {
State state = new State();
Context context = new Context(state);
// 状态1
state.setValue("state1");
context.method();
// 状态2
state.setValue("state2");
context.method();
}
}
输出:
State method1
State method2