简介
把对象的行为包装在不同的状态对象里,每个状态对象都有一个共同的抽象状态基类,让一个对象在其内部状态改变时,其行为也随之改变。
定义
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
使用场景
一个对象的行为取决于它的状态,并且必须在运行时根据状态改变其行为。
Java 代码示例
public interface State {
void doA();
void doB();
}
public class State1 implements State {
@Override
public void doA() {
}
@Override
public void doB() {
}
}
public class State2 implements State {
@Override
public void doA() {
}
@Override
public void doB() {
}
}
public class StateController {
private State mState;
public void setState(State state) {
mState = state;
}
public void doA() {
mState.doA();
}
public void doB() {
mState.doB();
}
}