状态模式允许对象内部状态改变时改变它的行为,对象看起来好像修改了它的类.状态模式看起来和策略模式比较相像,策略模式是将可以互换的行为封装起来,然后通过使用委托的方式,决定使用哪一个行为,状态也是封装行为,不同的是可以将行为委托到当前状态.一个需要从外部设置,一个是内部通过状态变更达到行为变成的目的. 基础知识 状态模式的UML类图: State封装基本的状态行为,我们通过Cotext上下文持有状态子类的实例,外部发起请求,我们就可以委托状态进行处理.地铁里面一般都有自动饮料售卖机,我们将所有的饮…