允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。 适用场景: 一个对象的行为取决于他的状态,并且它必须在运行时根据状态改变它的行为; 一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。