主题
对象池(IRocPoolService)
- 接口:
RocPlay.Services.Pool.IRocPoolService - 相关类型:
IPool<T>、IPoolFactory<T>(Create/Destroy/OnReturn/OnGet) - 默认实现:
RocPoolService,[RocImplementation(typeof(IRocPoolService), Priority = 0)] - 源码目录:
Assets/RocPlay/Services/Pool/
归档 Pool.md 强调 Services = 泛型池 + 工厂,Unity 场景对象 往往在 管理器 里做第二层编排——因此单独一册 「与对象池管理器」,避免和资源服务同一骨架。
最小心智模型
- 按字符串
key多池:同一 key 重复注册会 Warning 并跳过(不覆盖)。 - 先
RegisterPool再Get:未注册池的行为以实现为准。 maxSize == 0表示不限制缓存数;仅当maxSize > 0且已满时,归还会走Destroy而不进池。OnReturn里清状态:避免把脏对象借给下一使用者。- 与
IRocPoolManager分工:服务层偏通用建池;管理器偏 Unity 预制体/业务池,见 与对象池管理器。
职责(摘要)
按 字符串 key 区分的多池注册/获取/借还/清空;支持可选工厂、初始/最大容量。用于减少 new 与 GC 的可复用对象(以类型可安全复用为前提)。
分册(按阅读顺序)
| 顺序 | 分册 | 说明 |
|---|---|---|
| 1 | 注册与 IPool | 成员、IPool/Factory、顺序 |
| 2 | 与对象池管理器 | 与 IRocPoolManager 边界、不适合池化的情形 |
| 3 | 示例 | StringBuilder 借还 |
→ 基础服务总览