State Pattern Example

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("没开机");

        }

    }

}

State Pattern Example

 

State Pattern Example

State Pattern Example

State Pattern Example