GeWuYou bb449259d3 feat(docs): 添加 VitePress 文档生成技能系统
- 新增 .claude/skills 目录及完整的文档生成技能系统
- 添加批量 API 文档生成脚本支持模块化文档创建
- 添加 API 文档、功能指南和教程生成模板与示例
- 添加 C# XML 注释解析和代码示例生成工具
- 添加文档验证和导航更新脚本确保质量
- 更新 .gitignore 配置排除本地设置文件
2026-02-25 09:28:33 +08:00

5.1 KiB
Raw Blame History

title, description, outline
title description outline
IArchitecture 架构接口,定义了框架的核心功能契约。 deep

IArchitecture

概述

架构接口,定义了框架的核心功能契约。

命名空间GFramework.Core.Abstractions.architecture 程序集GFramework.Core.Abstractions 实现类Architecture

公共方法

RegisterSystem<TSystem>

注册系统组件到架构中。

签名

void RegisterSystem<TSystem>(TSystem system) where TSystem : ISystem

类型参数

  • TSystem: 系统类型,必须实现 ISystem 接口

参数

  • system (TSystem): 要注册的系统实例

RegisterModel<TModel>

注册模型组件到架构中。

签名

void RegisterModel<TModel>(TModel model) where TModel : IModel

类型参数

  • TModel: 模型类型,必须实现 IModel 接口

参数

  • model (TModel): 要注册的模型实例

RegisterUtility<TUtility>

注册工具组件到架构中。

签名

void RegisterUtility<TUtility>(TUtility utility) where TUtility : IUtility

类型参数

  • TUtility: 工具类型,必须实现 IUtility 接口

参数

  • utility (TUtility): 要注册的工具实例

GetModel<T>

从容器中获取已注册的模型。

签名

T GetModel<T>() where T : class, IModel

类型参数

  • T: 模型类型

返回值

  • (T): 模型实例

GetSystem<T>

从容器中获取已注册的系统。

签名

T GetSystem<T>() where T : class, ISystem

类型参数

  • T: 系统类型

返回值

  • (T): 系统实例

GetUtility<T>

从容器中获取已注册的工具。

签名

T GetUtility<T>() where T : class, IUtility

类型参数

  • T: 工具类型

返回值

  • (T): 工具实例

SendCommand

发送并执行命令。

签名

void SendCommand(ICommand command)

参数

  • command (ICommand): 要执行的命令实例

SendCommand<TResult>

发送并执行带返回值的命令。

签名

TResult SendCommand<TResult>(ICommand<TResult> command)

类型参数

  • TResult: 命令返回值类型

参数

  • command (ICommand<TResult>): 要执行的命令实例

返回值

  • (TResult): 命令执行结果

SendQuery<TResult>

发送并执行查询。

签名

TResult SendQuery<TResult>(IQuery<TResult> query)

类型参数

  • TResult: 查询返回值类型

参数

  • query (IQuery<TResult>): 要执行的查询实例

返回值

  • (TResult): 查询结果

SendEvent<T>

发送事件(无参数)。

签名

void SendEvent<T>() where T : new()

类型参数

  • T: 事件类型,必须有无参构造函数

SendEvent<T>

发送事件(带参数)。

签名

void SendEvent<T>(T e)

类型参数

  • T: 事件类型

参数

  • e (T): 事件实例

RegisterEvent<T>

注册事件监听器。

签名

IUnRegister RegisterEvent<T>(Action<T> onEvent)

类型参数

  • T: 事件类型

参数

  • onEvent (Action<T>): 事件处理回调

返回值

  • (IUnRegister): 用于注销事件的对象

UnRegisterEvent<T>

注销事件监听器。

签名

void UnRegisterEvent<T>(Action<T> onEvent)

类型参数

  • T: 事件类型

参数

  • onEvent (Action<T>): 要注销的事件处理回调

公共属性

CurrentPhase

获取当前架构的阶段。

类型ArchitecturePhase 访问get

Context

获取架构上下文。

类型IArchitectureContext 访问get

使用示例

在 Controller 中使用

public class GameController : IController
{
    public IArchitecture GetArchitecture() => GameArchitecture.Interface;

    public void Start()
    {
        // 获取 Model
        var playerModel = this.GetModel<PlayerModel>();

        // 发送命令
        this.SendCommand(new StartGameCommand());

        // 发送查询
        var score = this.SendQuery(new GetScoreQuery());

        // 注册事件
        this.RegisterEvent<PlayerDiedEvent>(OnPlayerDied);
    }

    private void OnPlayerDied(PlayerDiedEvent e)
    {
        // 处理玩家死亡事件
    }
}

实现自定义架构

public class GameArchitecture : Architecture
{
    // 单例访问
    public static IArchitecture Interface { get; private set; }

    protected override void Init()
    {
        Interface = this;

        // 注册组件
        RegisterModel(new PlayerModel());
        RegisterSystem(new GameplaySystem());
        RegisterUtility(new StorageUtility());
    }
}

另请参阅