GFramework/GFramework.Core/system/AbstractSystem.cs
GwWuYou 3e672cf56f refactor(architecture): 重构架构基类以支持依赖注入和服务配置
- 将Architecture类重构为使用构造函数注入IArchitectureConfiguration、IArchitectureServices和IArchitectureContext
- 移除泛型参数和单例模式,改为使用依赖注入容器管理实例
- 添加异步初始化方法InitializeAsync支持异步初始化场景
- 引入ArchitectureOptions类统一管理架构配置选项
- 创建DefaultArchitectureConfiguration和DefaultArchitectureServices默认实现
- 新增IArchitectureContext接口提供统一的上下文访问
- 添加IAsyncInitializable接口支持异步初始化能力
- 简化架构生命周期阶段,移除Created、BeforeInit和AfterInit阶段
- 更新事件系统为ITypeEventSystem接口实现
- 重构命令和控制器接口,统一使用IContextAware替代多个能力接口
- 移除FunctionalArchitectureOptions和相关委托配置方式
- 优化日志记录使用配置中的LoggerFactory实例
2025-12-24 23:09:17 +08:00

51 lines
1.3 KiB
C#

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