State Pattern Example
电视遥控器有开机,关机,调频道,调音量这四个功能。
但是只有在开机的情况下才能调频道,调音量。
未使用状态模式之前:
public class TvController {
private final int POWER_OFF=1;
private final int POWER_ON=2;
private int state=POWER_OFF;
public void turnOn(){
if(state==POWER_OFF){
System.out.print("开机了~");
}
state=POWER_ON;
}
public void turnOff(){
if(state==POWER_ON){
System.out.println("关机了");
}
state=POWER_OFF;
}
public void changeChannel(){
if(state==POWER_ON){
System.out.println("调频道");
}else{
System.out.println("没开机");
}
}
public void changeSound(){
if(state==POWER_ON){
System.out.println("调声音");
}
else{
System.out.println("没开机");
}
}
}