java中23种设计模式之17-状态模式(state pattern)

interface State
{
public void handle(StateMachine statemachine);
}

class Eat implements State
{
StateMachine statemachine=null;
public void handle(StateMachine statemachine)
{
System.out.println("eat");
this.statemachine=statemachine;
this.statemachine.setState(new Work());
this.statemachine.run();
}
}
class Work implements State
{
StateMachine statemachine=null;
public void handle(StateMachine statemachine)
{
System.out.println("work");
this.statemachine=statemachine;
this.statemachine.setState(new Sleep());
this.statemachine.run();
}
}

class Sleep implements State
{
StateMachine statemachine=null;
public void handle(StateMachine statemachine)
{
System.out.println("sleep");
}
}

class StateMachine
{
private State state=null;
public void setState(State state)
{
this.state=state;
}
public void run()
{
state.handle(this);
}
}

public class StatePattern
{
public static void main(String[] args)
{
State eatState=new Eat();
StateMachine aStateMachine=new StateMachine();
aStateMachine.setState(eatState);
aStateMachine.run();
}
}

posted on 2015-04-02 20:49  wudymand  阅读(124)  评论(0编辑  收藏  举报

导航