diff --git a/GFramework.Core/state/ContextAwareStateBase.cs b/GFramework.Core/state/ContextAwareStateBase.cs
index c0ca514..7eecbe8 100644
--- a/GFramework.Core/state/ContextAwareStateBase.cs
+++ b/GFramework.Core/state/ContextAwareStateBase.cs
@@ -1,6 +1,7 @@
using GFramework.Core.Abstractions.architecture;
using GFramework.Core.Abstractions.rule;
using GFramework.Core.Abstractions.state;
+using IDisposable = GFramework.Core.Abstractions.lifecycle.IDisposable;
namespace GFramework.Core.state;
@@ -9,7 +10,7 @@ namespace GFramework.Core.state;
/// 提供基础的状态管理功能和架构上下文访问能力
/// 实现了IState和IContextAware接口
///
-public class ContextAwareStateBase : IState, IContextAware
+public class ContextAwareStateBase : IState, IContextAware, IDisposable
{
///
/// 架构上下文引用,用于访问架构相关的服务和数据
@@ -34,12 +35,20 @@ public class ContextAwareStateBase : IState, IContextAware
return _context!;
}
+ ///
+ /// 销毁当前状态,释放相关资源
+ /// 子类可重写此方法以执行特定的清理操作
+ ///
+ public virtual void Destroy()
+ {
+ }
+
///
/// 进入状态时调用的方法
/// 子类可重写此方法以实现特定的状态进入逻辑
///
- /// 从哪个状态转换而来,可能为null表示初始状态
- public virtual void OnEnter(IState? fromState)
+ /// 从哪个状态转换而来,可能为null表示初始状态
+ public virtual void OnEnter(IState? from)
{
}
@@ -47,8 +56,8 @@ public class ContextAwareStateBase : IState, IContextAware
/// 退出状态时调用的方法
/// 子类可重写此方法以实现特定的状态退出逻辑
///
- /// 将要转换到的目标状态,可能为null表示结束状态
- public virtual void OnExit(IState? toState)
+ /// 将要转换到的目标状态,可能为null表示结束状态
+ public virtual void OnExit(IState? to)
{
}
@@ -56,9 +65,9 @@ public class ContextAwareStateBase : IState, IContextAware
/// 判断当前状态是否可以转换到目标状态
/// 子类可重写此方法以实现自定义的状态转换规则
///
- /// 希望转换到的目标状态对象
+ /// 希望转换到的目标状态对象
/// 如果允许转换则返回true,否则返回false
- public virtual bool CanTransitionTo(IState targetState)
+ public virtual bool CanTransitionTo(IState target)
{
return true;
}
diff --git a/GFramework.Core/state/ContextAwareStateMachine.cs b/GFramework.Core/state/ContextAwareStateMachine.cs
index c385502..d47fef4 100644
--- a/GFramework.Core/state/ContextAwareStateMachine.cs
+++ b/GFramework.Core/state/ContextAwareStateMachine.cs
@@ -4,6 +4,7 @@ using GFramework.Core.Abstractions.rule;
using GFramework.Core.Abstractions.state;
using GFramework.Core.Abstractions.system;
using GFramework.Core.extensions;
+using IDisposable = GFramework.Core.Abstractions.lifecycle.IDisposable;
namespace GFramework.Core.state;
@@ -71,7 +72,7 @@ public class ContextAwareStateMachine : StateMachine, ISystem
// 清理所有状态
foreach (var state in States.Values.OfType())
{
- state.Dispose();
+ state.Destroy();
}
States.Clear();