change: 调整状态机代码结构.

This commit is contained in:
2024-12-31 11:20:22 +08:00
parent 5fed1bbf19
commit d5073ae245
6 changed files with 358 additions and 234 deletions

View File

@@ -11,7 +11,7 @@ import com.serliunx.statemanagement.manager.BidirectionalStateManager;
* <li> 切出指定状态时触发 (离开事件)
* <li> 从A切换到B状态时触发 (交换事件)
* <p>
* 请使用{@link StateMachineBuilder} 来构建状态机.
* 请使用 {@link StateMachineBuilder} 来构建状态机.
*
* @author <a href="mailto:serliunx@yeah.net">SerLiunx</a>
* @version 1.0.0
@@ -20,10 +20,17 @@ import com.serliunx.statemanagement.manager.BidirectionalStateManager;
* @see BidirectionalStateManager
* @see com.serliunx.statemanagement.manager.StateManager
*/
public interface StateMachine<S> extends BidirectionalStateManager<S> {
public interface StateMachine<S> extends BidirectionalStateManager<S>, AutoCloseable {
/**
* 切换到指定状态
* 发布事件
*
* @param event 事件
*/
void publish(Object event);
/**
* 切换至指定状态
* <li> 在使用状态机的情况, 仅切换成功才会触发注册的各种事件.
*
* @param state 新的状态