设计模式——行为型之状态模式
作者:互联网
设计模式——行为型之状态模式
将操作实例状态的行为封装成类,通过“状态类”主动调用改变对象状态,这样的行为叫状态模式
状态模式适用于根据不同条件修改实例中某一成员变量的情景,将各个条件下复杂的修改逻辑单独提取出来,便于维护
多说一句,实例的状态你可以理解成类的成员变量
状态模式由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