Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 给我一个真实的、非琐碎的状态模式的使用_Design Patterns_State Pattern - Fatal编程技术网

Design patterns 给我一个真实的、非琐碎的状态模式的使用

Design patterns 给我一个真实的、非琐碎的状态模式的使用,design-patterns,state-pattern,Design Patterns,State Pattern,我正在寻找一个使用状态设计模式来解决或简化有趣或复杂的状态转换的示例。有很多例子有三个或四个简单的状态。但是,对于现实生活中具有子状态和多个转换的项目中的代码呢?这种代码实际上激发了模式的使用。奖励积分代码指针 到目前为止,我所看到的状态模式在现实生活中的一个应用是在能够播放在线视频的视频播放器中 您必须处理播放、暂停、缓冲、连接、查找甚至其他状态 当播放器处于播放或暂停状态时,它会响应用户交互事件。 当播放器处于“连接”状态时,可能没有足够的数据来了解视频持续时间,因此应禁用搜索栏。 一旦播放

我正在寻找一个使用状态设计模式来解决或简化有趣或复杂的状态转换的示例。有很多例子有三个或四个简单的状态。但是,对于现实生活中具有子状态和多个转换的项目中的代码呢?这种代码实际上激发了模式的使用。奖励积分代码指针

到目前为止,我所看到的状态模式在现实生活中的一个应用是在能够播放在线视频的视频播放器中

您必须处理播放、暂停、缓冲、连接、查找甚至其他状态

当播放器处于播放或暂停状态时,它会响应用户交互事件。
当播放器处于“连接”状态时,可能没有足够的数据来了解视频持续时间,因此应禁用搜索栏。

一旦播放器连接,它将进入缓冲状态。在缓冲状态下,用户可以搜索或停止视频。但是,如果他试图暂停或播放视频,则该命令将保存以供以后使用,这样当缓冲完成时,视频将暂停或开始播放。等

交通灯系统(时间触发|传感器[事件]触发)

状态:红色、黄色、绿色(最简单的示例)

过渡:定时器后,将红色变为绿色、绿色变为黄色、黄色变为红色