admin管理员组文章数量:1028885
设计模式:原型模式(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对象开发设计模式:原型模式(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对象开发本文标签: 设计模式原型模式(Prototype)(1)
版权声明:本文标题:设计模式:原型模式(Prototype)(1) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747546466a2173966.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论