gewuyou 1454c81a5b docs(adoption): 收口安装入口与公开文案
- 更新安装页的选包矩阵、推荐组合与 Godot 基线说明
- 收口公开 README 的 XML 阅读入口表述,移除治理式计数与日期字段
- 调整配置系统与基础教程入口的 reader-facing 文案,并同步更新恢复文档
2026-04-27 07:42:10 +08:00

104 lines
3.6 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.

# GFramework.Ecs.Arch.Abstractions
`GFramework.Ecs.Arch.Abstractions` 承载 Arch ECS 集成层的最小契约,用来让共享业务层、宿主循环或扩展模块在不依赖
`GFramework.Ecs.Arch` 默认实现的前提下,仍然可以约定 ECS 模块边界。
如果你需要的是 `UseArch(...)` 扩展、`ArchSystemAdapter<T>` 基类、`World` 注册和默认模块实现,请改为依赖
`GFramework.Ecs.Arch`
## 包定位
- 这是 `Ecs.Arch` 的契约层,不是默认实现层。
- 适合让上层模块只面向 `IArchEcsModule``IArchSystemAdapter<T>``ArchOptions` 编程。
- 常见场景:
- 共享宿主循环只依赖更新契约,不直接引用 Arch runtime 实现
- 多程序集之间需要共享 ECS 配置对象或接口边界
- 测试替身、编辑器工具或外部适配层希望复用契约,但自行决定底层实现
## 与相邻包的关系
- `GFramework.Core.Abstractions`
- 本包直接依赖它,并复用 `IServiceModule``ISystem` 等基础契约。
- `GFramework.Ecs.Arch.Abstractions`
- 只定义 Arch ECS 集成相关的最小契约和配置对象。
- `GFramework.Ecs.Arch`
- 本包的默认实现层。
- 负责 `UseArch(...)` 扩展、默认模块注册、Arch `World` 装配,以及系统适配器基类。
## 契约地图
| 文件 | 作用 |
| --- | --- |
| `IArchEcsModule.cs` | ECS 模块服务契约,负责统一驱动系统更新 |
| `IArchSystemAdapter.cs` | 让 ECS 系统适配到 GFramework `ISystem` 生命周期的接口 |
| `ArchOptions.cs` | `WorldCapacity``EnableStatistics``Priority` 等配置对象 |
## XML 阅读入口
下表汇总当前契约包的类型级 XML 文档入口,方便把 README、站内抽象页与源码阅读顺序对齐。
| 类型族 | 代表类型 | 阅读重点 |
| --- | --- | --- |
| 模块契约 | `IArchEcsModule` | 宿主循环如何统一驱动 ECS 更新 |
| 系统桥接契约 | `IArchSystemAdapter<T>` | 外部模块怎样只依赖更新接口而不绑定默认实现 |
| 配置对象 | `ArchOptions` | 跨程序集共享 ECS 配置边界 |
## 最小接入路径
### 1. 只想约定宿主循环与 ECS 模块边界
```csharp
using GFramework.Ecs.Arch.Abstractions;
public sealed class EcsUpdateLoop
{
private readonly IArchEcsModule _ecsModule;
public EcsUpdateLoop(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(...)` 或其他 runtime 装配入口
- `ArchSystemAdapter<T>` 等默认基类
- Arch `World` 的创建、注册和查询能力
-`GFramework` 架构生命周期绑定的默认模块实现
## 适用边界
- 本包不提供 Arch `World` 的默认构造与注册逻辑。
- 本包不提供系统基类、扩展方法或默认服务实现。
- 它回答的是“外部模块怎样与 Arch ECS 集成层约定边界”不是“Arch ECS 默认怎么接入到项目里”。
## 对应文档入口
- 抽象接口总览:[抽象接口总览](../docs/zh-CN/abstractions/index.md)
- Ecs.Arch 抽象层说明:[ECS 抽象层说明](../docs/zh-CN/abstractions/ecs-arch-abstractions.md)
- ECS 模块入口:[ECS 模块总览](../docs/zh-CN/ecs/index.md)
- Arch ECS 集成:[Arch ECS 集成](../docs/zh-CN/ecs/arch.md)
- 运行时实现入口:[Ecs.Arch 运行时说明](../GFramework.Ecs.Arch/README.md)