public class Lights{ //组合电灯类
private State state=null //当前点亮状态
public viod setState(State state){ //获到当前的点亮状态
this.state=state}
public viod open(){ //按下电灯开关
state.handleopen(this); }
}
//电灯状态类
public abstract class State{
public viod handleopen(Lights light);
}
public class bigLightsState extands state{ //大灯亮状态
...//亮大灯的操作等
public viod handleopen(Lights light){
light.setState(new smallLightsState());}
}
public class smallLightsState extands state{ //小灯亮状态
...//亮小灯的操作等
public viod handleopen(Lights light){
light.setState(new allLightsState());}
}
public class allLightsState extands state{ //所有灯亮状态
...//亮所有灯的操作等
public viod handleopen(Lights light){
light.setState(new closeLightsState());}
}
public class closeLightsState extands state{ //关灯状态
...//关灯的操作等
public viod handleopen(Lights light){
light.setState(new bigLightsState());
}
}