13.4 状态模式

    我们为变化的部分抽象了State接口,把不同的行为封装在相应的状态类中,PaintBoard在执行与状态相关的行为时,把请求转发给当前状态类去执行,这正是状态模式。GoF为状态模式给出的定义是。

    Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

    允许一个对象在其内部状态发生变化时改变自己的行为,该对象看起来好像修改了它的的类型。

    此例中,PaintBoard类是担任了Context角色,客户对象直接操作此类对象,State是状态接口,BlueState、GreenState和RedState这些都是具体状态类。