设计模式:状态模式

定义

状态模式也叫做状态机模式,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类,属于行为型设计模式。

状态模式中类的行为由状态决定的,在不同的状态下有不同的行为,其意图是让一个对象在其内部发生改变的时候,行为也随之改变。

适用场景:

  • 行为随状态改变而改变的场景。
  • 一个操作中含有庞大的多分支结构,并且这些分支取决于对象的状态。

通用写法

//状态接口
public interface IState {
    void handle();
}
public class StateA implements IState{
    @Override
    public void handle() {
        System.out.println("StateA handle");
    }
}
public class StateB implements IState{
    @Override
    public void handle() {
        System.out.println("StateB handle");
    }
}
//环境类
public class Context {
    private static final IState STATE_A = new StateA();
    private static final IState STATE_B = new StateB();

    //默认状态
    private IState currentState = STATE_A;

    public void setState(IState iState){
        this.currentState = iState;
    }

    public void handle(){
        this.currentState.handle();
    }
}

uml类图

image-20210118194027561

原文地址:https://www.cnblogs.com/wwjj4811/p/14294822.html