场景
电梯的运行
- 红绿灯
- 红灯、黄灯、绿灯
- 企业或政府系统
- 公文的审批状态
- 报销单据审批状态
- 假条审批
- 公文的审批状态
网上购物,订单的状态
酒店系统中,房间的状态变化:
- 已预定
- 已入住
- 空闲
核心
- 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题
结构
- Context环境类
- 环境类中维护一个State对象,他是定义了当前的状态
- State抽象状态类
- ConcreteState具体状态类
- 每一个类封装了一个状态对应的行为
不使用设计模式解决
代码解析(酒店系统模型)
1 | /** |
开发中常见的场景
- 银行系统中账号状态的管理
- OA系统中公文状态的管理
- 酒店系统中,房间状态的管理
- 线程对象各个状态之间的切换
注:该博文为学习总结,视频来源为高淇java300集