package com.lonton.designpatterns;
interface State
{
public void saySomething(StateContext stateContext);
}
class Poor implements State
{
@Override
public void saySomething(StateContext sc)
{
// TODO Auto-generated method stub
System.out.println("I'm poor currently, and spend much time working.");
sc.changeState(new Rich());
}
}
class Rich implements State
{
@Override
public void saySomething(StateContext sc)
{
// TODO Auto-generated method stub
System.out.println("I'm rick currently, and play a lot.");
sc.changeState(new Poor());
}
}
class StateContext
{
private State curState;
public StateContext()
{
curState = new Poor();
}
public void changeState(State state)
{
curState = state;
}
public void saySomething()
{
curState.saySomething(this);
}
}
public class StateTest
{
public static void main(String[] args)
{
StateContext sc = new StateContext();
sc.saySomething();
sc.saySomething();
sc.saySomething();
sc.saySomething();
}
}
State 狀態模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.