mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
- 在 AbstractSystem 中添加 OnDestroy 抽象方法和 ISystem.Destroy 接口实现 - 在 Architecture 中增加 Destroy 方法以统一销毁所有已注册系统 - 更新 ISystem 接口注释及功能描述,明确支持系统销毁能力 - 修正 OnRegisterPatch 调用方式,确保架构注册补丁逻辑正确执行 - 完善 AbstractAudioManagerSystem 中的 OnDestroy 方法重写逻辑 - [no tag]
57 lines
1.5 KiB
C#
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() { }
|
|
} |