设计模式:原型模式(Prototype)(1)
又称克隆模式(Clone)。
在 VFP 中,大多数基类都有一个 CloneObject 方法。但是很可惜,它只能在开发环境下使用。因此,可能只有开发过 IDE 工具的开发者才可能对其有兴趣。原型模式却可以在运行环境中克隆类实例。
在现代OOP编程语言中,原型模式中对象可以使用浅拷贝和深拷贝。浅拷贝类似于 VFP 中变量的按引用传递;深拷贝类似于 VFP 中使用 CreateObject() 重新创建一个对象。因此,按照严格的意义来说,在 VFP 中仅仅能够实现所谓的深拷贝。
那么,在 VFP 中的原型模式是怎么样的呢?其实就是需要一个可以全局调用的函数:
代码语言:javascript代码运行次数:0运行复制Public a, b
m.a = Createobject("custom")
m.b = Clone(m.a)
Function Clone(toSourceObject)
Local lcTempVCX
m.lcTempVCX = Sys(2015)
m.toSourceObject.SaveAsClass(m.lcTempVCX, m.toSourceObject.Name)
Return Newobject(toSourceObject.Name, m.lcTempVCX)
Endfunc
这样,我们就可以在运行时刻获得一个对象的克隆体。
未完待续......
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-24,如有侵权请联系 cloudcommunity@tencent 删除设计模式原型prototype对象开发
发布评论