状态模式(复杂)
定义:Allow an object to alter its behavior when its internal state
changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行
为,这个对象看起来像改变了其类。) 状态模式可以有效的替换充满在程序中的 if else 语句:将不同条件下的行为封装在一
个类里面,再给这些类一个统一的父类来约束他们。
组成
- 使用环境(Context)角色:客户程序是通过它来满足自己的需求。它定义了客户程序需要的接口;并且维护一个具体状态角色的实例,这个实例来决定当前的状态。
- 状态(State)角色:定义一个接口以封装与使用环境角色的一个特定状态相关的行为。
- 具体状态(Concrete State)角色:实现状态角色定义的接口。
使用场景:
- 行为随状态改变而改变的场景
这也是状态模式的根本出发点,例如权限设计,人员的状态不同即使执行相同的行
为结果也会不同,在这种情况下需