十一.状态设计模式

一.定义

  1. 当一个对象的内在状态发生改变,允许其改变行为,这个对象看起来像改变了其类
  2. 角色:
    (1)State:抽象状态角色 (eg:Lifestate),持有Context属性,状态内的方法带来的状态流转要使用Context改变当前状态
    (2)ConcreteState:具体状态 (eg:Closingstate)
    (3)Context:环境角色 - 负责具体状态的切换,该类1.持有所有状态作为常亮属性,2.持有当前状态作为属性,3.提供接口表示当前状态下的行为

二. 场景

模仿电梯在门开和门关下的操作

// 客户端调用代码:调用Context执行
public static void main(String[] args){
  Context context = new Context();
  context.setCurrentState(Context.ClosingState);
  context.open();
  context.close();
  context.run();
  context.stop();
}
原文地址:https://www.cnblogs.com/72808ljup/p/5129843.html