用 C++ 设计一个小型对象池,有助于减少 "repetitive operations on objects"
Design of a small object pool in C++ which helps reduce "repetitive operations on objects"
我有一个系统,我必须"update certain data members of an object again and again in every "执行路径"".
问题是,根据对象的类型,我更新的 "data members" 中至少有 40-60% 是硬编码值。
我想要的是只执行一次这些硬编码,然后使用 "hardcodings-already-done" 对象来更新实际需要即时更新的数据成员。
这将使我的代码显着加快,因为我正在做一些字符串分配(50-100,取决于对象的类型)作为 "hardcodings" 的一部分。
显然我不能在对象缓存中使用 "hardcodings-already-done" 的引用,因为一旦我使用该引用来构建我的最终对象,就会有很多 "dirty fields" 因为我会更新 "on-the-fly" 字段。下次不能使用相同的引用(除非我写一个 "erase dirty fields" 例程)。
关于设计的任何想法。感觉这种问题是家常便饭。可能有一个我不知道的关于此的公认模式。
抱歉,我没有代码,到目前为止这基本上是一个设计问题。
我想你说的是 Prototype design pattern
我有一个系统,我必须"update certain data members of an object again and again in every "执行路径"".
问题是,根据对象的类型,我更新的 "data members" 中至少有 40-60% 是硬编码值。
我想要的是只执行一次这些硬编码,然后使用 "hardcodings-already-done" 对象来更新实际需要即时更新的数据成员。
这将使我的代码显着加快,因为我正在做一些字符串分配(50-100,取决于对象的类型)作为 "hardcodings" 的一部分。
显然我不能在对象缓存中使用 "hardcodings-already-done" 的引用,因为一旦我使用该引用来构建我的最终对象,就会有很多 "dirty fields" 因为我会更新 "on-the-fly" 字段。下次不能使用相同的引用(除非我写一个 "erase dirty fields" 例程)。
关于设计的任何想法。感觉这种问题是家常便饭。可能有一个我不知道的关于此的公认模式。
抱歉,我没有代码,到目前为止这基本上是一个设计问题。
我想你说的是 Prototype design pattern