状态模式
状态模式 :
- 它主要解决多种状态转换时,需要对外输出不同的问题。状态和行为是一一对应的,状态之间可以互相交换。
- 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来改变了其类。
应用场景:审批流
如下图:
- 箭头为行为:即方法
- 圆形为状态:即 对象的状态
注意:当一个对象的内在状态改变时,允许改变其行为;
实现原理:
- Context 类为环境角色,用于维护state实例。这个实例定义当前状态。
- State 是抽象状态角色,定义的一个借口封装与context的一个特点接口相关行为。
- ConcreteState 具体的状态角色,每个子类实现一个与context的一个状态。
代码实例后续补充
实例分析
- 订单流程分析图