介绍
有限状态机通常用于模拟序列逻辑,换句话说,就是用于代表和控制执行流程。
有限状态机所需条件:
- 一个物体只有固定的几种状态(例如交通灯只有绿灯、黄灯和红灯三个状态)。
- 有固定的变化顺序(例如交通灯只能绿灯->黄灯->红灯->绿灯循环)
- 物体同一时间点上只有一种状态。
例子
这里拿一个空调做例子,图是用了别人的,这里说明下下面三个状态的意思:
Off:空调关机
FanOnly:空调仅吹风
Cool:空调制冷
原始的解决办法
StateEnum
用枚举类定义三种状态
package org.example.origin; |
|
public enum StateEnum {
|
|
POWER_OFF, FAN_ONLY, COOL |
|
} |
OriginAction
pressPowerOff()
表示点开关按钮,pressCool()
表示点击制冷按钮。
package org.example.origin; |
|
public class OriginAction {
|
|
private StateEnum stateEnum; |
|
public OriginAction() {
|
|
this.stateEnum = StateEnum.POWER_OFF; |
|
} |
|
public void pressPowerOff() {
|
|
// 关机->吹风 < |