时间:2021-05-19
java 设计模式之State(状态模式)
在状态模式中,一个类的行为基于它的状态的改变而改变。状态模式归属于行为型模式。
在下面的实例中,我们创建了一个接口State,定义了一个操作方法,两个实现类StartState和StopState。另外,创建了一个上下文类Context,这个类关联到State类。UML类图如下所示:
//状态类 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; } } //测试类 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 stateStart StatePlayer is in stop stateStop State如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android编程设计模式之状态模式。分享给大家供大家参考,具体如下:一、介绍状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式
本文实例讲述了Python设计模式之状态模式原理与用法。分享给大家供大家参考,具体如下:状态模式(StatePattern):当一个对象的内在状态改变时允许改变
本文实例讲述了Java设计模式之单例模式。分享给大家供大家参考,具体如下:单例模式:(SingletonPattern)是一个比较简单的模式,其定义如下:Ens
本文实例讲述了Java设计模式之静态工厂模式。分享给大家供大家参考,具体如下:静态工厂模式(staticfactory)也叫简单工厂模式。涉及到3个角色:工厂类
java模式匹配之蛮力匹配/***模式匹配之蛮力匹配*/packagejavay.util;/***PatternMatchBrute-Force*@autho