com.alicizax.unity.framework/Runtime/Procedure/ProcedureBase.cs
陈思海 cad7722e44 优化
1.重名所有App级模块为Service
2.移除Module中心 移除SingletonManager
3.引入Service Scope Context概念  避免上下文Manager到处引用
4.修复部分bug
2026-03-26 16:14:05 +08:00

73 lines
1.3 KiB
C#

namespace AlicizaX
{
public interface IProcedure
{
IProcedureService ProcedureService { get; set; }
void Init();
void Enter();
void Leave();
void Update();
void Destroy();
}
/// <summary>
/// 流程基类 - 使用模板方法模式定义流程生命周期
/// </summary>
public abstract class ProcedureBase : IProcedure
{
public IProcedureService ProcedureService { get; set; }
void IProcedure.Init()
{
OnInit();
}
void IProcedure.Enter()
{
OnEnter();
}
void IProcedure.Leave()
{
OnLeave();
}
void IProcedure.Update()
{
OnUpdate();
}
void IProcedure.Destroy()
{
OnDestroy();
}
protected virtual void OnInit()
{
}
protected virtual void OnEnter()
{
}
protected virtual void OnLeave()
{
}
protected virtual void OnUpdate()
{
}
protected virtual void OnDestroy()
{
}
protected internal void SwitchProcedure<T>() where T : ProcedureBase
{
AppServices.Require<IProcedureService>().SwitchProcedure<T>();
}
}
}