GFramework/docs/zh-CN/abstractions/ecs-arch-abstractions.md
GeWuYou da0ae700a3 docs(ecs): 重写 Ecs.Arch 文档入口
- 重写 Ecs.Arch README 与 ecs 栏目页面,使采用路径对齐当前源码和集成测试

- 补充 Ecs.Arch.Abstractions 的 XML inventory 与抽象页阅读链路

- 更新 documentation-full-coverage-governance 的恢复点、验证结果和下一波次计划
2026-04-22 17:19:33 +08:00

104 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Ecs.Arch Abstractions
description: GFramework.Ecs.Arch.Abstractions 的契约边界、包关系和最小接入路径。
---
# Ecs.Arch Abstractions
`GFramework.Ecs.Arch.Abstractions` 是 Arch ECS 集成层的契约包。
它建立在 `GFramework.Core.Abstractions` 之上,只定义 ECS 模块更新、系统适配和配置对象,不负责默认的 Arch
`World` 装配、扩展方法或系统基类。
如果你需要开箱即用的集成实现,请改为依赖 `GFramework.Ecs.Arch`
## 什么时候单独依赖它
- 你在做共享宿主循环、工具层或 feature 包,只需要 `IArchEcsModule`
- 你想让不同程序集共享 `ArchOptions` 或系统适配契约,但不直接绑定默认 runtime
- 你需要为测试或外部适配层提供替身实现
## 包关系
- 契约层:`GFramework.Ecs.Arch.Abstractions`
- 运行时实现:`GFramework.Ecs.Arch`
- 底层基础契约:`GFramework.Core.Abstractions`
## 契约地图
| 类型 | 作用 |
| --- | --- |
| `IArchEcsModule` | 统一更新 ECS 系统的服务模块契约 |
| `IArchSystemAdapter<T>` | 让 ECS 系统适配到 `ISystem` 生命周期 |
| `ArchOptions` | 承载 `WorldCapacity``EnableStatistics``Priority` 等配置 |
## 类型族级 XML Inventory
| 类型族 | 代表类型 | XML 状态 | 阅读重点 |
| --- | --- | --- | --- |
| 模块契约 | `IArchEcsModule` | 已覆盖 | 统一更新入口、宿主循环边界 |
| 系统契约 | `IArchSystemAdapter<T>` | 已覆盖 | 只依赖更新接口而不绑定默认 runtime |
| 配置对象 | `ArchOptions` | 已覆盖 | 共享配置字段与跨程序集采用边界 |
## 最小接入路径
### 1. 共享模块只依赖更新契约
```csharp
using GFramework.Ecs.Arch.Abstractions;
public sealed class GameplayHost
{
private readonly IArchEcsModule _ecsModule;
public GameplayHost(IArchEcsModule ecsModule)
{
_ecsModule = ecsModule;
}
public void Tick(float deltaTime)
{
_ecsModule.Update(deltaTime);
}
}
```
### 2. 共享配置对象
```csharp
using GFramework.Ecs.Arch.Abstractions;
var options = new ArchOptions
{
WorldCapacity = 2048,
EnableStatistics = true,
Priority = 40
};
```
### 3. 什么时候切到运行时包
下面这些需求都属于 `GFramework.Ecs.Arch` 的职责,而不是本包:
- 通过 `UseArch(...)` 把模块挂进架构
- 使用默认的 `ArchSystemAdapter<T>` 基类
- 访问 Arch `World` 与查询 API
- 使用默认的模块装配和生命周期实现
## 阅读顺序
1. 先读本页,确认你是否真的只需要契约层
2. 如果需要默认实现,再看 [`../ecs/arch.md`](../ecs/arch.md)
3. 回到对应模块 README
- `GFramework.Ecs.Arch.Abstractions/README.md`
- `GFramework.Ecs.Arch/README.md`
## 边界提醒
- `GFramework.Core.SourceGenerators.Abstractions`
- `GFramework.Godot.SourceGenerators.Abstractions`
- `GFramework.SourceGenerators.Common`
这些目录当前都不是独立消费模块,而是源码生成器家族的内部支撑组件。它们不属于抽象接口栏目里的独立采用入口,
应分别跟随 `Core.SourceGenerators``Godot.SourceGenerators` 或其他生成器模块的 README 与专题页维护。