状态模式:允许在其内部状态变化的时候改变他的行为。可以理解为对象的行为其实是由他的状态来驱动的。
package com.jerry.design.state; // 测试类 public class Test { public static void main(String[] args) { State state = new StateA(); StateManager controller = new StateManager(state); for (int i = 0; i < 10; i++) { state = controller.nextState(); System.out.print(state); if(state == null) break; System.out.print("->"); controller.nextStep(); } } } interface State { public void lastState(StateManager c); public void nextState(StateManager c); } class StateA implements State { public void lastState(StateManager c) { c.setState(new StateC()); } public void nextState(StateManager c) { c.setState(new StateB()); } @Override public String toString() { return "i am StateA!"; } } class StateB implements State { public void lastState(StateManager c) { c.setState(new StateA()); } public void nextState(StateManager c) { c.setState(new StateC()); } @Override public String toString() { return "i am StateB!"; } } class StateC implements State { public void lastState(StateManager c) { c.setState(new StateB()); } public void nextState(StateManager c) { c.setState(new StateA()); } @Override public String toString() { return "i am StateC!"; } } class StateManager { private State state; private StateManager(){} public StateManager(State initState){ this.state = initState; } public void setState(State state) { this.state = state; } public void nextStep(){ if(this.state != null) this.state.nextState(this); } public void lastStep(){ if(this.state != null) this.state.lastState(this); } public State nextState(){ return this.state; } } 这个例子的难点其实是这个状态管理器,其中用一个State对象维护了当前状态和下一个状态,通过设置这个state对象的不同状态来获得不同的state的方法调用。
您还没有登录,请您登录后再发表评论
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。 2,状态模式的角色: 抽象状态,具体状态(一般是几个,每一个状态下有不同的行为,),环境(context)角色(就是对象,什么对象的状态,一般该对象要...
设计模式:状态模式TCPConnection案例,详细介绍可参考我的csdn博客。
状态模式与实时控制线程类连接起来,作了一个周期性执行任务。并按到指定的状态,周期有序地执行指定的任务。 本文主要讲解下状态模式的实现方法,首先对状态模式作下简单的定义:允许一个对象在其内部状态改变时...
java设计模式之状态模式入门
55-Java设计模式之策略模式与状态模式1
设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解
能让你迅速理解和运用设计模式中的状态模式,进行编程
C++状态模式
java设计模式之状态模式,通过实际生活中的例子说明状态模式的原理。
设计模式C++学习之状态模式(State)
最近在学设计模式,使用状态模式去代替大量的if else 。比如登录。这个案例比较简单。默认不登录,登录之后可以点击转发。,通过替换状态进行判断
java设计模式之-状态模式-实现
分享关于状态模式的c++实现,若理解有误,还请指正。
设计模式专题之(二十一)状态模式---设计模式状态模式示例代码(python--c++)
状态模式(State) 用意:允许一个对象当状态改变时,改变其行为。
首先了解什么是状态模式,然后思考为何产生这种模式,意义何在。同时能够在实际的代码中体现这种模式,并且对比使用该模式与不使用的区别何在。
面向对象系统分析设计——对象设计,状态模式
状态模式的示例代码和文档,学习状态模式的参考资料。
设计模式-状态模式分享ppt
状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互
相关推荐
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。 2,状态模式的角色: 抽象状态,具体状态(一般是几个,每一个状态下有不同的行为,),环境(context)角色(就是对象,什么对象的状态,一般该对象要...
设计模式:状态模式TCPConnection案例,详细介绍可参考我的csdn博客。
状态模式与实时控制线程类连接起来,作了一个周期性执行任务。并按到指定的状态,周期有序地执行指定的任务。 本文主要讲解下状态模式的实现方法,首先对状态模式作下简单的定义:允许一个对象在其内部状态改变时...
java设计模式之状态模式入门
55-Java设计模式之策略模式与状态模式1
设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解
能让你迅速理解和运用设计模式中的状态模式,进行编程
C++状态模式
java设计模式之状态模式,通过实际生活中的例子说明状态模式的原理。
设计模式C++学习之状态模式(State)
最近在学设计模式,使用状态模式去代替大量的if else 。比如登录。这个案例比较简单。默认不登录,登录之后可以点击转发。,通过替换状态进行判断
java设计模式之-状态模式-实现
分享关于状态模式的c++实现,若理解有误,还请指正。
设计模式专题之(二十一)状态模式---设计模式状态模式示例代码(python--c++)
状态模式(State) 用意:允许一个对象当状态改变时,改变其行为。
首先了解什么是状态模式,然后思考为何产生这种模式,意义何在。同时能够在实际的代码中体现这种模式,并且对比使用该模式与不使用的区别何在。
面向对象系统分析设计——对象设计,状态模式
状态模式的示例代码和文档,学习状态模式的参考资料。
设计模式-状态模式分享ppt
状态模式-State Pattern状态模式-State Pattern【学习难度:,使用频率:】状态模式-State Pattern处理对象的多种状态及其相互