加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi原型模式

发布时间:2020-12-15 10:12:11 所属栏目:大数据 来源:网络整理
导读:我想知道,Delphi的RTTI中是否有与MemberwiseClone在C#中执行相同操作的原型模式的简单实现. 我看到了这个模式的一些Delphi实现,其中创建了一个新对象(TMyObject.Create),并且它的属性分配了来自原型对象的值.我可能错了,但如果我们以相同的基本方式创建对象,
我想知道,Delphi的RTTI中是否有与MemberwiseClone在C#中执行相同操作的原型模式的简单实现.
我看到了这个模式的一些Delphi实现,其中创建了一个新对象(TMyObject.Create),并且它的属性分配了来自原型对象的值.我可能错了,但如果我们以相同的基本方式创建对象,我就看不到模式的好处.

谢谢.

解决方法

没有任何内置可以为您执行深度克隆.我相信你可以根据新的RTTI写一个深度克隆,但我希望它是一项非常重要的工作.

如果你处理的是足够简单的类型,它可以正常工作,但你很容易遇到严峻的挑战.例如,我的头顶:

>需要按特定顺序创建某些对象组.
>不应克隆某类成员,例如:参考计数.你怎么认识那些有RTTI的人?
>你如何处理单身人士?
>那些需要建立的外在参考怎么样?假设您克隆通常由工厂创建的对象.如果该工厂拥有对其创建的对象的引用,那么它背后可能会破坏您的设计.

您可以通过定义一个基本的Clone()方法来实现您的原型模式,该方法将RTTI用于简单类型,然后您必须覆盖它以获得更复杂的东西.就个人而言,我将继承TPersistent,并根据Assign创建我的Clone()方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读