Helloworld
1、添加依赖
新建一个 java maven 项目,并添加依赖
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-statemachine</artifactId>
</dependency>
2、添加一个 DemoApp 类
复制,即可运行
import org.noear.solon.statemachine.EventContext;
import org.noear.solon.statemachine.StateMachine;
public class DemoApp {
//定义事件(一个事件:按下按钮)
enum Event {PRESS}
//定义状态(关闭,开启)
enum State {OFF,ON}
public static void main(String[] args) {
// 1. 创建状态机
StateMachine<State, Event, String> stateMachine = new StateMachine<>();
// 2. 配置转换规则:OFF -> ON
stateMachine.addTransition(t -> t.from(State.OFF).on(Event.PRESS).to(State.ON)
.then(context -> {
System.out.println("你好,💡 灯亮了!");
})
);
// 3. 配置规则:ON -> OFF
stateMachine.addTransition(t -> t.from(State.ON).on(Event.PRESS).to(State.OFF)
.then(context -> {
System.out.println("你好,🌙 灯灭了!");
})
);
// 4. 状态机测试
State currentState = State.OFF;
for (int i = 0; i < 10; i++) {
currentState = stateMachine.sendEvent(Event.PRESS, EventContext.of(currentState, null));
System.out.println("新状态: " + currentState);
}
}
}
3、运行效果
