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