状态模式

适用场景:

  • 一个对象的操作与具体的状态有关,如电视机的开关状态下按键的效果

栗子:

 public class TVState{
       public void nextChannel();
       public void lastChannel();
       public void turnUp();
       public void turnDown();

}

public class PowerOffState implements TVState{
      //关机状态下的具体实现
}
public class PowerOnState implements TVState{
      //开机状态下的具体实现
}

public interface PowerController{
     public void powerOn();
     public void powerOff();
}
public class TVController{
     TVState mTvState;

      public void setTvState(TVState){
       this.mTvState=TVState;
       }

     public void powerOn(){
     setTvState(new PowerOnState());
      }
     public void powerOff(){
      setTvState(new PowerOnState());

    }

       public void nextChannel(){ mTvState. nextChannel ();}
       public void lastChannel(){ mTvState.lastChannel (); }
       public void turnUp(){ mTvState.turnUp(); }
       public void turnDown(){ mTvState.turnDown(); }
}