文章标签 ‘深克隆’

PD*914983也谈AS3中的深度复制这篇文章中简单的记录了一些google的总结个人的看法,但终觉不够深入,不够全面。到底哪些类是可以通过序列化和反序列化的方法深复制,哪些类不可以,始终是困扰我的一个迷雾。我曾经试图从as3在内存中的对象模型(感兴趣请猛击这里)入手,来窥探AS3内部的秘密,但这似乎无法直接敲开那所AS3序列化规则的大门。

在上一篇文章中曾经提到,AS3序列化的结果是AMF格式。从这条线索入手,可能会找到些许答案。果然,Adobe在AMF的文档中详细的列出了所有可序列化的数据类型,包括:

阅读全文…

2010年2月5日21:40 | 38 条评论
标签: ,

深度复制(也叫深克隆)在一门成熟的面向对象语言中已经不是什么新鲜的事情了,在Java和.NET中都有着比较完善的实现方式。而在AS3中似乎没有一个完美的解决方案。网上有些所谓的AS3深度复制的终极方案,但都经不起推敲,反倒不如一些虽然不完善但比较客观的论述来的有说服力。最近几天google了很多关于深度复制的资料,也翻了很多各大论坛的老帖子,得出的结论是AS3并不支持复杂对象的深克隆的相关功能。至于是Adobe有意为之,还是机制上的缺陷,不是本文讨论的范畴。写这篇文章,一是对这几天查阅资料的一个总结,再就是记录下我这几天的一些有意义思考。

说到深克隆,思路无非有两个:一是通过序列化和反序列化;二是通过语言的反射机制,递归遍历对象的各级属性,然后copy之。Java和.NET上最成熟的做法是第一条,序列化和反序列化。而且这两种语言在序列化的时候都保存了类型信息,这样做的好处在于反序列化的时候可以把得到的对象转化成对应的类型。而到了AS3中,情况就比较复杂了。
阅读全文…

2009年11月26日22:04 | 评论关闭
标签: ,
Դ