状态模式
当状态改变时,类的行为也发生改变。
状态模式是以面向对象的方式实现状态机的行为设计模式。对于状态模式,通过将每个单独状态实现为派生类的状态模式接口, 来实现一个状态机,并通过调用模式超类的方法来实现状态转换。状态模式可以被解释为一种策略模式,它能够通过调用模式接口定义的方法来切换当前策略。
实例
state=$state; } public function setState($state){ $this->state=$state; } public function type(string $words){ $this->state->write($words); }}$state=new DefaultState();$editor=new Editor($state);$editor->type("First Type");$editor->setState(new UpperState());$editor->type("Second Type");$editor->setState(new LowerState());$editor->type("Third Type");