# ADR-001: 使用 Entity-Component 模式 ## Status Accepted ## Date 2026-05-10 ## Context 需要一个管理游戏对象的架构,要求: - 支持 50+ 个并发实体 - 轻松添加新实体类型,无需修改核心系统 - 高效查询特定组件组合的实体 - 解耦物理、渲染和 AI 逻辑 ## Decision 使用 Entity-Component (EC) 模式,不用完整 ECS 框架。 - 实体是唯一 ID (字符串) - 组件是纯数据对象,必须有 `type` 字段 - 系统遍历组件数组操作匹配的实体 - EventBus 处理系统间通信 选择此方案而非: - 继承层次 (太僵化,钻石问题) - 完整 ECS 库 (增加依赖,复杂度超出需求) - 扁平对象数组 (大数据量缓存不友好) ## Consequences - 添加新实体类型只需定义组件 (无需修改类) - 系统可以独立开发和测试 - 需要自己编写组件存储和查询逻辑 - 实体数量在 200+ 时可能需要优化