当一个对象可能有N中状态,而且每种状态下对象的行为都不一样,同时状态间的关系较为复杂时,使用状态模式。 状态模式是针对此对象每种状态定义一个类,每个类中都有此对象的指针,在每个类中处理和状态相关的动作(函数)。此对象包含这些这些状态类的指针族,同时有一个表示当前状态的指针,同时变化这个指针的值来修改当前状态对应的动作。 在非必须使用状态模式的情况下,不要使用,这个实现类太多,同时代码阅读性不好,同时如果设计不好将导致代码混乱,易出错。