Skip to content

对象池(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 场景对象 往往在 管理器 里做第二层编排——因此单独一册 「与对象池管理器」,避免和资源服务同一骨架。


最小心智模型

  1. 按字符串 key 多池:同一 key 重复注册会 Warning 并跳过(不覆盖)。
  2. RegisterPoolGet:未注册池的行为以实现为准。
  3. maxSize == 0 表示不限制缓存数;仅当 maxSize > 0 且已满时,归还会走 Destroy 而不进池。
  4. OnReturn 里清状态:避免把脏对象借给下一使用者。
  5. IRocPoolManager 分工:服务层偏通用建池;管理器偏 Unity 预制体/业务池,见 与对象池管理器

职责(摘要)

字符串 key 区分的多池注册/获取/借还/清空;支持可选工厂、初始/最大容量。用于减少 new 与 GC 的可复用对象(以类型可安全复用为前提)。


分册(按阅读顺序)

顺序分册说明
1注册与 IPool成员、IPool/Factory、顺序
2与对象池管理器IRocPoolManager 边界、不适合池化的情形
3示例StringBuilder 借还

基础服务总览