Allows an object to alter its behaviour when its internal state changes. The object will appear to change its class.
允许对象内部状态改变时,改变其行为。对象看起来像改变了其类。
小菜加班的例子。详细见代码。
实际更好的例子是:网购。物品的状态依次是:下单,发货,物流公司收件,派件,签收。包裹的状态每个步骤都在改变。每个状态对应两个动作:处理包裹和改状态。
消除庞大的分支语句。
有点像状态机。
具体状态类中的状态变量可以设置为单例。