设计模式中状态模式的意图是:允许一个对象在其内部状态被改变时改变它的行为
打个比方,在一款即时战略游戏中设计一辆坦克,坦克有普通攻击状态,还有一防空状态。通过设计一个坦克抽象父类,再在下面设计一个具体坦克子类,子类下面有一个普通攻击状态子类,一个防空状态子类,通过调动这些状态类实现状态转换
Context:情景类,定义客户应用程序有兴趣的接口,维护一个Concrete state子类的对象
state:抽象状态类,定义一个接口用来封装与Context的一个特别状态相关的行为
Concrete State:具体状态类,每一个具体状态类实现一个Context的状态相关的行为