阅读 84

java状态模式

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它所属的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。

aHR0cDovL2ltZy5sbGM2ODcudG9wL3VQaWMvMTU5MzkzOTI1MjMxMi02ZjA5NTZjMy04OTgwLTRiZmUtYjJkYy1iZDE2MzQ3MTI0YmMucG5n.png

Context: 环境类
State: 抽象状态类
ConcreteState: 具体状态类

抽象状态类

public interface State {
   public void doAction(Context context);
}
复制代码

具体状态类

public class StartState implements State {
 
   @Override
   public void doAction(Context context) {
      context.setState(this); 
   }
 
}
复制代码
public class StopState implements State {
   @Override
   public void doAction(Context context) {
      context.setState(this);     
   }
 
}
复制代码

环境类

public class Context {
   private State state;
 
   public Context(){
      state = null;
   }
 
   public void setState(State state){
      this.state = state;     
   }
 
   public State getState(){
      return state;
   }
}
复制代码

调用类

public class Client {
   public static void main(String[] args) {
      Context context = new Context();
 
      StartState startState = new StartState();
      startState.doAction(context);
 
      StopState stopState = new StopState();
      stopState.doAction(context);
   }
}
复制代码

参考
blog.csdn.net/liyifan687/…

文章分类
后端
文章标签