我正在尝试创建一个对象池框架。每次客户端请求某种类型的对象时,我都会从缓存(队列)中返回一个对象,或者如果缓存中没有对象,则创建一个新对象。
现在,当客户端代码处理完对象后,将其传递给框架以再次缓存。但是要使这种模式起作用,需要将对象重置为初始状态。每个字段都必须设置为其default(T)
. 为每个班级手动执行此操作将是容易出错且乏味的工作。
public void Reset(){
x=0;
y=0;
...
}
当然,性能是首要考虑的问题。我正在寻找最有效的解决方案。
编辑:
至于动机,这是一个unity3d游戏项目,垃圾收集是unity中的一个大问题。您从垃圾收集中保存的每个字节都很重要。因此,与创建新对象的最快、最简单、更合理的方式相比,缓存对象是可取的。