1.普通状态机
public class StateMachine{
private final int STATE1 = 1;//以Int表示不同的状态
private final int STATE2 = 2;
private int state = STATE1;//当前所处的状态
public void insertCoin(){
if(state == STATE1){
......
state = STATE2;
}else{
if(state ==STATE2){
.......
state = STATE1
}
2.状态模式,把所有的业务交给状态来完成
public interface State{//状态接口
doSomeThing();
}
public class ConcreteState1 implements State{//具体状态实现
doSomeThing(){
System.out.println("State1");
}
public class ConcreteState2 implements State{//具体状态实现
doSomething(){
System.out.pringln("State2");
public class Context{//容纳状态
private State state1 = new ConcreteState1();
private State state2 = new ConcreteState2();
private State currentState = state1;
public void change(){//利用状态实现业务,并切换状态
currentState.doSomething();
if(currente == state2){
currenteState ==state1;
}else{
currentState = state2;
}