Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/状态模式.md
2023-09-10 10:50:53 +08:00

675 B

Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。)

  • State 抽象状态角色
  • ConcreteState 具体状态角色
  • Context 环境角色
    • 把状态对象声明为常量,有几个状态对象就声明几个常量
    • 环境角色具有状态抽象角色定义的所有行为,具体执行使用委托方式

优点

  • 结构清晰
  • 遵循设计原则
  • 封装性非常好

缺点

子类太多,类膨胀

使用场景

  • 行为随状态改变而改变
  • 条件、分支判断语句的替代者