状态模式主要用于消除复杂的if或swith判断。当控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示一系列不同的状态类中。
代码结构:
Context类:拥有一个状态类的实例。拥有一个设置状态的方法。拥有一个行为方法,行为方法根据拥有的状态实例执行相应的行为。
状态抽象类,可以派生出各种不同的状态:状态类拥有一个行为方法,执行这个状态独有的行为。
状态模式主要用于消除复杂的if或swith判断。当控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示一系列不同的状态类中。
代码结构:
Context类:拥有一个状态类的实例。拥有一个设置状态的方法。拥有一个行为方法,行为方法根据拥有的状态实例执行相应的行为。
状态抽象类,可以派生出各种不同的状态:状态类拥有一个行为方法,执行这个状态独有的行为。