using GFramework.Core.Abstractions.logging; using GFramework.Core.Abstractions.system; using GFramework.Core.rule; namespace GFramework.Core.system; /// /// 抽象系统基类,实现系统接口的基本功能 /// 提供架构关联、初始化和销毁机制 /// public abstract class AbstractSystem : ContextAwareBase, ISystem { private ILogger _logger = null!; /// /// 系统初始化方法,调用抽象初始化方法 /// void ISystem.Init() { _logger = Context.LoggerFactory.GetLogger(nameof(AbstractSystem)); _logger.Debug($"Initializing system: {GetType().Name}"); OnInit(); _logger.Info($"System initialized: {GetType().Name}"); } /// /// 系统销毁方法,调用抽象销毁方法 /// void ISystem.Destroy() { _logger.Debug($"Destroying system: {GetType().Name}"); OnDestroy(); _logger.Info($"System destroyed: {GetType().Name}"); } /// /// 抽象初始化方法,由子类实现具体的初始化逻辑 /// protected abstract void OnInit(); /// /// 抽象销毁方法,由子类实现具体的资源清理逻辑 /// protected virtual void OnDestroy() { } }