java设计模式—状态模式
一.概述
状态模式是指对象的行为根据某个状态的改变而改变。
二.应用场景
1.替代if-else或switch-case
三.模式示例:
1.创建状态接口
public interface State {
public void doAction(Context context);
public void print();
}
2.创建状态为true的具体类
public class TrueState implements State{
public void doAction(Context context) {
context.setState(this);
}
@Override
public void print() {
System.out.println("当前状态为true");
}
}
3.创建状态为false的具体类
public class FalseState implements State{
public void doAction(Context context) {
context.setState(this);
}
@Override
public void print() {
System.out.println("当前状态为false");
}
}
4.创建Context
public class Context {
private State state;
public Context(){
state = null;
}
public void setState(State state){
this.state = state;
}
public State getState(){
return state;
}
}
5.模式调用
public class Test {
public static void main(String[] args) {
Context context = new Context();
TrueState trueState = new TrueState();
trueState.doAction(context);
context.getState().print();
FalseState falseState = new FalseState();
falseState.doAction(context);
context.getState().print();
}
}