状态模式(State Pattern)

发布时间:2016-12-8 10:22:44 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"状态模式(State Pattern)",主要涉及到状态模式(State Pattern)方面的内容,对于状态模式(State Pattern)感兴趣的同学可以参考一下。

    在状态模式中,一个类的行为基于它的状态的改变而改变。状态模式归属于行为型模式。     在下面的实例中,我们创建了一个接口State,定义了一个操作方法,两个实现类StartState和StopState。另外,创建了一个上下文类Context,这个类关联到State类。UML类图如下所示:     状态类State public interface State { public void doAction(Context context); } 实现类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"; } } 实现类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"; } } 上下文类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; } } 测试类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()); } } 输出结果: Player is in start state Start State Player is in stop state Stop State

上一篇:【二分查找】-POJ-2002-Squares
下一篇:SICP 习题 (1.29)解题总结

相关文章

相关评论