GFramework/GFramework.Core/system/AbstractSystem.cs
GeWuYou 396cc589bc feat(core): 实现系统销毁机制
- 在 AbstractSystem 中添加 OnDestroy 抽象方法和 ISystem.Destroy 接口实现
- 在 Architecture 中增加 Destroy 方法以统一销毁所有已注册系统
- 更新 ISystem 接口注释及功能描述,明确支持系统销毁能力
- 修正 OnRegisterPatch 调用方式,确保架构注册补丁逻辑正确执行
- 完善 AbstractAudioManagerSystem 中的 OnDestroy 方法重写逻辑
- [no tag]
2025-12-17 13:00:33 +08:00

57 lines
1.5 KiB
C#

using GFramework.Core.architecture;
using GFramework.Core.rule;
namespace GFramework.Core.system;
/// <summary>
/// 抽象系统基类,实现系统接口的基本功能
/// 提供架构关联、初始化和销毁机制
/// </summary>
public abstract class AbstractSystem : ISystem
{
private IArchitecture _mArchitecture;
/// <summary>
/// 获取当前系统所属的架构实例
/// </summary>
/// <returns>返回系统关联的架构对象</returns>
IArchitecture IBelongToArchitecture.GetArchitecture()
{
return _mArchitecture;
}
/// <summary>
/// 设置系统所属的架构实例
/// </summary>
/// <param name="architecture">要关联的架构对象</param>
void ICanSetArchitecture.SetArchitecture(IArchitecture architecture)
{
_mArchitecture = architecture;
}
/// <summary>
/// 系统初始化方法,调用抽象初始化方法
/// </summary>
void ISystem.Init()
{
OnInit();
}
/// <summary>
/// 系统销毁方法,调用抽象销毁方法
/// </summary>
void ISystem.Destroy()
{
OnDestroy();
}
/// <summary>
/// 抽象初始化方法,由子类实现具体的初始化逻辑
/// </summary>
protected abstract void OnInit();
/// <summary>
/// 抽象销毁方法,由子类实现具体的资源清理逻辑
/// </summary>
protected virtual void OnDestroy() { }
}