^

Young Anything I do that may help others, I'll post it here.

State Pattern

状态模式

一种行为模式。消除庞大的分支语句,通过把各种状态转移逻辑分布到state的子类之间,减少相互间依赖。

复杂的状态转换逻辑被分散到各个具体子状态对象中,然后根据context的具体需求,context上绑定的状态为其交接其他状态

将特定的状态相关的行为都放入一个对象内,由于所有与状态相关的代码都存在于某个ConcreteState内,所以通过定义新的子类就可以很容易地增加新的状态和转换。

应用场景

  1. 一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时;
  2. 某项业务需要有多个状态,通常都是枚举常量,状态的变化依靠大量分支判断实现。

state