PHP中状态模式是什么?如何通过实例改写为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1765个文字,预计阅读时间需要8分钟。
在之前的文章《一起聊聊PHP中的单例模式》中,我们介绍了PHP中的单例模式。下面本篇将带领大家了解PHP设计模式中的状态模式。状态模式从字面上理解可能并不容易理解,其实它本质上并不是很难。
这里的状态指的是对象在运行过程中可能遇到的几种不同状态。状态模式允许对象在内部状态改变时改变其行为。
在之前的文章《一起聊聊PHP中的单例模式》中我们介绍了PHP中的单例模式,下面本篇文章带大家了解一下PHP设计模式中的状态模式状态模式从字面上其实并不是很好理解。这里的状态是什么意思呢?保存状态?那不就是备忘录模式了。其实,这里的状态是类的状态,通过改变类的某个状态,让这个类感觉像是换了一个类一样。说起来有点拗口吧,先学习概念之后再看。
Gof类图及解释
GoF定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类
GoF类图
代码实现
class Context { private $state; public function SetState(State $state): void { $this->state = $state; } public function Request(): void { $this->state = $this->state->Handle(); } }
一个上下文类,也可以看作是目标类,它的内部有一个状态对象。
本文共计1765个文字,预计阅读时间需要8分钟。
在之前的文章《一起聊聊PHP中的单例模式》中,我们介绍了PHP中的单例模式。下面本篇将带领大家了解PHP设计模式中的状态模式。状态模式从字面上理解可能并不容易理解,其实它本质上并不是很难。
这里的状态指的是对象在运行过程中可能遇到的几种不同状态。状态模式允许对象在内部状态改变时改变其行为。
在之前的文章《一起聊聊PHP中的单例模式》中我们介绍了PHP中的单例模式,下面本篇文章带大家了解一下PHP设计模式中的状态模式状态模式从字面上其实并不是很好理解。这里的状态是什么意思呢?保存状态?那不就是备忘录模式了。其实,这里的状态是类的状态,通过改变类的某个状态,让这个类感觉像是换了一个类一样。说起来有点拗口吧,先学习概念之后再看。
Gof类图及解释
GoF定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类
GoF类图
代码实现
class Context { private $state; public function SetState(State $state): void { $this->state = $state; } public function Request(): void { $this->state = $this->state->Handle(); } }
一个上下文类,也可以看作是目标类,它的内部有一个状态对象。

