Java状态模式 Java观察者模式 Java空对象模式 Java状态模式 在状态模式中,类行为根据其状态而改变。 这种设计模式属于行为模式。 在状态模式中,我们创建表示各种状态的对象,以及随状态对象变化而行为变化的上下文对象。 实例 我们将创建一个State接口来定义一个动作并实现State接口的具体状态类。Context是一个载有一个状态的类。 演示类StatePatternDemo将使用Context和状态对象来演示上下文行为基于它所处的状态类型的变化。 第1步:创建一个接口,State.java public interface State { public void doAction(Context context); } 第2步:创建实现相同接口的具体类。StartState.java public class StartState implements State { public void doAction(Context context) { System.out.println("Player is in start state"); context.setState(this); } public String toString(){ return "Start State"; } } Java 文件:StopState.java - public class StopState implements State { public void doAction(Context context) { System.out.println("Player is in stop state"); context.setState(this); } public String toString(){ return "Stop State"; } } 第3步:创建 Context 类,Context.java public class Context { private State state; public Context(){ state = null; } public void setState(State state){ this.state = state; } public State getState(){ return state; } } 第4步:使用Context查看状态更改时的行为更改。StatePatternDemo.java public class StatePatternDemo { public static void main(String[] args) { Context context = new Context(); StartState startState = new StartState(); startState.doAction(context); System.out.println(context.getState().toString()); StopState stopState = new StopState(); stopState.doAction(context); System.out.println(context.getState().toString()); } } 第5步:验证输出结果 Player is in start state Start State Player is in stop state Stop State Java观察者模式 Java空对象模式