mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-25 13:33:28 +08:00
refactor(core): 重构核心框架生命周期管理
- 引入标准化的生命周期接口体系 (IInitializable, IDisposable, ILifecycle) - 将上下文工具类的初始化方法改为公共访问权限 - 为上下文工具类添加销毁功能和相关回调方法 - 更新模型和系统接口以使用新的生命周期接口 - 移除原有的独立初始化和销毁方法声明 - 统一框架组件的生命周期管理机制
This commit is contained in:
parent
b6554c5820
commit
efa069d2f5
12
GFramework.Core.Abstractions/lifecycle/IDisposable.cs
Normal file
12
GFramework.Core.Abstractions/lifecycle/IDisposable.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace GFramework.Core.Abstractions.lifecycle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 可销毁接口,为需要资源清理的组件提供标准销毁能力
|
||||||
|
/// </summary>
|
||||||
|
public interface IDisposable
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 销毁组件并释放资源
|
||||||
|
/// </summary>
|
||||||
|
void Destroy();
|
||||||
|
}
|
||||||
12
GFramework.Core.Abstractions/lifecycle/IInitializable.cs
Normal file
12
GFramework.Core.Abstractions/lifecycle/IInitializable.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace GFramework.Core.Abstractions.lifecycle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 可初始化接口,为需要初始化的组件提供标准初始化能力
|
||||||
|
/// </summary>
|
||||||
|
public interface IInitializable
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化组件
|
||||||
|
/// </summary>
|
||||||
|
void Init();
|
||||||
|
}
|
||||||
6
GFramework.Core.Abstractions/lifecycle/ILifecycle.cs
Normal file
6
GFramework.Core.Abstractions/lifecycle/ILifecycle.cs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
namespace GFramework.Core.Abstractions.lifecycle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 完整生命周期接口,组合了初始化和销毁能力
|
||||||
|
/// </summary>
|
||||||
|
public interface ILifecycle : IInitializable, IDisposable;
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using GFramework.Core.Abstractions.architecture;
|
using GFramework.Core.Abstractions.architecture;
|
||||||
|
using GFramework.Core.Abstractions.lifecycle;
|
||||||
using GFramework.Core.Abstractions.rule;
|
using GFramework.Core.Abstractions.rule;
|
||||||
|
|
||||||
namespace GFramework.Core.Abstractions.model;
|
namespace GFramework.Core.Abstractions.model;
|
||||||
@ -6,10 +7,4 @@ namespace GFramework.Core.Abstractions.model;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模型接口,定义了模型的基本行为和功能
|
/// 模型接口,定义了模型的基本行为和功能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IModel : IContextAware, IArchitecturePhaseAware
|
public interface IModel : IContextAware, IArchitecturePhaseAware, IInitializable;
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 初始化模型
|
|
||||||
/// </summary>
|
|
||||||
void Init();
|
|
||||||
}
|
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using GFramework.Core.Abstractions.architecture;
|
using GFramework.Core.Abstractions.architecture;
|
||||||
|
using GFramework.Core.Abstractions.lifecycle;
|
||||||
using GFramework.Core.Abstractions.rule;
|
using GFramework.Core.Abstractions.rule;
|
||||||
|
|
||||||
namespace GFramework.Core.Abstractions.system;
|
namespace GFramework.Core.Abstractions.system;
|
||||||
@ -7,17 +8,4 @@ namespace GFramework.Core.Abstractions.system;
|
|||||||
/// 系统接口,定义了系统的基本行为和功能
|
/// 系统接口,定义了系统的基本行为和功能
|
||||||
/// 该接口继承了多个框架相关的接口,提供了系统初始化和销毁能力
|
/// 该接口继承了多个框架相关的接口,提供了系统初始化和销毁能力
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface ISystem : IContextAware, IArchitecturePhaseAware
|
public interface ISystem : IContextAware, IArchitecturePhaseAware, ILifecycle;
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 初始化系统
|
|
||||||
/// 在系统被创建后调用,用于执行系统的初始化逻辑
|
|
||||||
/// </summary>
|
|
||||||
void Init();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 销毁系统
|
|
||||||
/// 在系统被销毁前调用,用于执行系统的资源清理逻辑
|
|
||||||
/// </summary>
|
|
||||||
void Destroy();
|
|
||||||
}
|
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using GFramework.Core.Abstractions.rule;
|
using GFramework.Core.Abstractions.lifecycle;
|
||||||
|
using GFramework.Core.Abstractions.rule;
|
||||||
|
|
||||||
namespace GFramework.Core.Abstractions.utility;
|
namespace GFramework.Core.Abstractions.utility;
|
||||||
|
|
||||||
@ -6,10 +7,4 @@ namespace GFramework.Core.Abstractions.utility;
|
|||||||
/// 上下文工具接口,继承自IUtility和IContextAware接口
|
/// 上下文工具接口,继承自IUtility和IContextAware接口
|
||||||
/// 提供具有上下文感知能力的工具功能
|
/// 提供具有上下文感知能力的工具功能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IContextUtility : IUtility, IContextAware
|
public interface IContextUtility : IUtility, IContextAware, ILifecycle;
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 初始化上下文工具
|
|
||||||
/// </summary>
|
|
||||||
void Init();
|
|
||||||
}
|
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using GFramework.Core.Abstractions.enums;
|
using GFramework.Core.Abstractions.enums;
|
||||||
|
using GFramework.Core.Abstractions.lifecycle;
|
||||||
using GFramework.Core.Abstractions.model;
|
using GFramework.Core.Abstractions.model;
|
||||||
using GFramework.Core.rule;
|
using GFramework.Core.rule;
|
||||||
|
|
||||||
@ -12,7 +13,7 @@ public abstract class AbstractModel : ContextAwareBase, IModel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化模型,调用抽象方法OnInit执行具体初始化逻辑
|
/// 初始化模型,调用抽象方法OnInit执行具体初始化逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void IModel.Init()
|
void IInitializable.Init()
|
||||||
{
|
{
|
||||||
OnInit();
|
OnInit();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ public abstract class AbstractSystem : ContextAwareBase, ISystem
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统初始化方法,调用抽象初始化方法
|
/// 系统初始化方法,调用抽象初始化方法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ISystem.Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
var name = GetType().Name;
|
var name = GetType().Name;
|
||||||
_logger = LoggerFactoryResolver.Provider.CreateLogger(name);
|
_logger = LoggerFactoryResolver.Provider.CreateLogger(name);
|
||||||
@ -31,7 +31,7 @@ public abstract class AbstractSystem : ContextAwareBase, ISystem
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统销毁方法,调用抽象销毁方法
|
/// 系统销毁方法,调用抽象销毁方法
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ISystem.Destroy()
|
public void Destroy()
|
||||||
{
|
{
|
||||||
_logger.Debug($"Destroying system: {GetType().Name}");
|
_logger.Debug($"Destroying system: {GetType().Name}");
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ public abstract class AbstractContextUtility : ContextAwareBase, IContextUtility
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化上下文工具类
|
/// 初始化上下文工具类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void IContextUtility.Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
var name = GetType().Name;
|
var name = GetType().Name;
|
||||||
// 获取上下文中的日志记录器
|
// 获取上下文中的日志记录器
|
||||||
@ -30,8 +30,26 @@ public abstract class AbstractContextUtility : ContextAwareBase, IContextUtility
|
|||||||
Logger.Info($"Context Utility initialized: {name}");
|
Logger.Info($"Context Utility initialized: {name}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 销毁上下文工具类实例
|
||||||
|
/// </summary>
|
||||||
|
public void Destroy()
|
||||||
|
{
|
||||||
|
var name = GetType().Name;
|
||||||
|
Logger.Debug($"Destroying Context Utility: {name}");
|
||||||
|
OnDestroy();
|
||||||
|
Logger.Info($"Context Utility destroyed: {name}");
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 抽象初始化方法,由子类实现具体的初始化逻辑
|
/// 抽象初始化方法,由子类实现具体的初始化逻辑
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected abstract void OnInit();
|
protected abstract void OnInit();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 虚拟销毁方法,可由子类重写以实现自定义销毁逻辑
|
||||||
|
/// </summary>
|
||||||
|
protected virtual void OnDestroy()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user