delphi - 我可以通过复制内存来克隆对象吗?

标签 delphi design-patterns delphi-xe

我需要为我控制下的有限数量的类提供撤消+重做堆栈,该堆栈必须非常非常快,并且使用 RTTI 和 XML 或流是不可行的,因为实例数可能高达 2000+在嵌套对象列表中。需要通过备忘录模式将对象复制到或复制出,并立即重新加载。

有没有办法通过复制内存并从该内存重新实例化对象来克隆对象?

最佳答案

几乎没有。您可以轻松复制对象的内存,但该内存的一部分将是指针,在这种情况下您只能复制引用。这些指针也可以包含字符串和其他对象。

我认为最好的方法是从 TPersistent(或任何后代)继承这些类,并为每个类实现分配方法。这样,您可以创建第二个实例并将对象分配给该新实例。在分配实现中,您可以自己决定应该复制哪些数据,不复制哪些数据。

关于delphi - 我可以通过复制内存来克隆对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798036/

相关文章:

flash - OOP 问题 : Extending a class, 覆盖函数和类似 jQuery 的语法

php - 以 mvc 模式传递变量

delphi - 有没有办法在delphi中用for/in循环范围?

delphi - 如何从动态生成的表单中检索数据?

delphi - 表单背景中的平铺/中心图像

Delphi Firemonkey Frames - 如何获取框架使用的事件OnEnter和OnExit

multithreading - Delphi 2009 等待链遍历在 Windows 7 安装中可用吗?

java - 如何通过向其传递运行时参数来使用命令模式

delphi - 将 UTF8 字符串传递给 RemObject (Delphi 2007) 时要使用哪种字符串类型 - Utf8String 或 WideString

delphi - 在运行时插入控件集非常慢