State Pattern
Last updated
Last updated
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("execute the first opt!");
}
public void method2(){
System.out.println("execute the second opt!");
}
}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) {
State state = new State();
Context context = new Context(state);
// 첫번째 상태로 설정
state.setValue("온라인");
context.method();
// 두번째 상태로 설정
state.setValue("자리비움");
context.method();
// 세번째 상태로 설정
state.setValue("다른 용무 중");
context.method();
}
}