其他分享
首页 > 其他分享> > 设计模式——行为型之状态模式

设计模式——行为型之状态模式

作者:互联网

设计模式——行为型之状态模式


将操作实例状态的行为封装成类,通过“状态类”主动调用改变对象状态,这样的行为叫状态模式

状态模式适用于根据不同条件修改实例中某一成员变量的情景,将各个条件下复杂的修改逻辑单独提取出来,便于维护

多说一句,实例的状态你可以理解成类的成员变量

状态模式由3部分组成:

上下文类:

public class Context {

    private IState iState;

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

    public void doSth() {
        iState.doSth();
    }
}

状态抽象类:

public interface IState {

    void changeContext(Context context);

    void doSth();

}

状态类(B、C省略):

public class StateA implements IState{
    @Override
    public void changeContext(Context context) {
        System.out.println("state change to A");
        context.setiState(this);
    }

    @Override
    public void doSth() {
        System.out.println("state A");
    }
}

使用:

public static void main(String[] args) {
        final Context context = new Context();
        new StateA().changeContext(context);
        context.doSth();
        new StateB().changeContext(context);
        context.doSth();
        new StateC().changeContext(context);
        context.doSth();
    }
state change to A
state A
state change to B
state B
state change to C
state C

标签:状态,doSth,void,模式,state,context,设计模式,public
来源: https://blog.csdn.net/weixin_39841589/article/details/112597295