概述
状态模式:允许一个对象在其内部状态改变时改变它的行为。它常用于处理复杂的条件分支逻辑。
结构与组成
状态模式主要由三部分组成:环境类 Context、抽象状态类 State、具体状态类 ConcreteState。
环境类 Context:定义客户感兴趣的接口,维护一个 ConcreteState 子类的实例,这个实例定义当前状态;
抽象状态类 State:定义一个接口以封装与 Context 的一个特定状态相关的行为;
具体状态类 ConcreteState:每一子类实现一个与 Context 的一个状态相关的行为;
代码实例
由上面的定义我们知道,状态模式是为了反映依赖关系,所以我们来一个状态改变的例子。
定义 State
public interface State {
String getState();
}
定义 Context
package state;
public class Context {
private State state;
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public String stateMessage() {
return state.getState();
}
}
客户端测试
public class ClientTest {
public static void main(String[] args) {
Context context = new ();
context.setState( ());
System.out.println(context.stateMessage());
}
}


