mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
- 移除架构中的命令和查询执行方法,将业务操作委托给 ArchitectureRuntime - 引入 ArchitectureContext 类统一管理组件访问和事件处理 - 创建 ArchitectureRuntime 类作为统一的命令、查询、事件操作入口 - 更新架构生命周期管理,添加对 IArchitectureLifecycle 的支持 - 重命名 DefaultArchitectureConfiguration 为 ArchitectureConfiguration - 重命名 DefaultArchitectureServices 为 ArchitectureServices - 删除旧的 DefaultArchitectureContext 类 - 更新查询接口实现,使用 ContextAwareBase 基类 - 修改系统和模型注册逻辑,使用上下文而非架构实例 - 重构事件发送机制,统一使用 TypeEventSystem - [no tag]
75 lines
2.4 KiB
C#
75 lines
2.4 KiB
C#
using GFramework.Core.architecture;
|
||
using GFramework.Core.command;
|
||
using GFramework.Core.events;
|
||
using GFramework.Core.model;
|
||
using GFramework.Core.query;
|
||
using GFramework.Core.system;
|
||
using GFramework.Core.utility;
|
||
|
||
namespace GFramework.Core.architecture;
|
||
|
||
/// <summary>
|
||
/// 架构接口,专注于生命周期管理,包括系统、模型、工具的注册和获取
|
||
/// 业务操作通过 ArchitectureRuntime 提供
|
||
/// </summary>
|
||
public interface IArchitecture: IAsyncInitializable
|
||
{
|
||
/// <summary>
|
||
/// 初始化方法,用于执行对象的初始化操作
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 该方法通常用于设置初始状态、初始化成员变量或执行必要的预处理操作
|
||
/// </remarks>
|
||
void Initialize();
|
||
|
||
/// <summary>
|
||
/// 销毁方法,用于执行对象的清理和销毁操作
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 该方法通常用于释放资源、清理内存或执行必要的清理操作
|
||
/// </remarks>
|
||
void Destroy();
|
||
|
||
/// <summary>
|
||
/// 注册系统实例到架构中
|
||
/// </summary>
|
||
/// <typeparam name="T">系统类型,必须实现ISystem接口</typeparam>
|
||
/// <param name="system">要注册的系统实例</param>
|
||
void RegisterSystem<T>(T system) where T : ISystem;
|
||
|
||
/// <summary>
|
||
/// 注册模型实例到架构中
|
||
/// </summary>
|
||
/// <typeparam name="T">模型类型,必须实现IModel接口</typeparam>
|
||
/// <param name="model">要注册的模型实例</param>
|
||
void RegisterModel<T>(T model) where T : IModel;
|
||
|
||
/// <summary>
|
||
/// 注册工具实例到架构中
|
||
/// </summary>
|
||
/// <typeparam name="T">工具类型,必须实现IUtility接口</typeparam>
|
||
/// <param name="utility">要注册的工具实例</param>
|
||
void RegisterUtility<T>(T utility) where T : IUtility;
|
||
|
||
/// <summary>
|
||
/// 安装架构模块
|
||
/// </summary>
|
||
/// <param name="module">要安装的模块</param>
|
||
void InstallModule(IArchitectureModule module);
|
||
|
||
/// <summary>
|
||
/// 注册生命周期钩子
|
||
/// </summary>
|
||
/// <param name="hook">生命周期钩子实例</param>
|
||
void RegisterLifecycleHook(IArchitectureLifecycle hook);
|
||
|
||
/// <summary>
|
||
/// 获取架构上下文
|
||
/// </summary>
|
||
IArchitectureContext Context { get; }
|
||
|
||
/// <summary>
|
||
/// 获取架构运行时实例
|
||
/// </summary>
|
||
IArchitectureRuntime Runtime { get; }
|
||
} |