一个对象的状态是这个对象属性值的一个组合,如果我们对一个对象的成员变量进行了赋值操作,或者调用了一个对象中的某个方法,这个对象的状态往往会发生变化。而与状态相关的逻辑可能分布在这个类的多个方法中。
我们引入一组新类,每个类代表一个不同的特定状态,然后将与状态相关的行为分配到这些新类中。换句话说,就是引入一组表示对象状态的类,然后把与状态相关的操作分配到这些表示状态的类中。一个对象的状态发生改后,其行为也发生改变。每个状态类都有表示一个领域状态的所以行为,一个状态类也直接对应了状态机中的某个状态。
为了处理状态之间的迁移,可以使用中心对象引用状态对象集合,也可以在导致状态迁移的方法中传递对象,另外一种发就是在让状态类提供状态迁移信息,状态类只需要指明下一个状态,这种情况不需要对中心对象进行更新。

























































































































































































































































































































































