首页 > 设计 > WEB开发 > 正文

13.12.用唯一的IDs标识数据对象

2023-07-22 12:39:08
字体:
来源:转载
供稿:网友
13.12.1. 问题
我的应用程序在多个位置有多个数据对象,但需要确保所有对象的都分配有唯一的ID 属性,以便用于测试对象之间的平等并确定他们是否表示相同的数据片段。
13.12.2. 解决办法
你的数据可实现IUID 接口,使用mx.core.UIDUtil.createUID 方法给对象生成新的唯一的id。
13.12.3. 讨论
在有些情况下是非常有用的,比如使用Adobe LiveCycle messaging 或其他服务,因为这些对象是通过简单相等(== 操作符)或复杂相等( === 操作符)。通过频繁比较对象的所有属性是否相同来确定两个对象是否表示相同的数据,对于数量巨大而复杂的对象的计算将非常消耗资源。实现IUID 接口后,类将被id 属性所标记来作为对象间比较的依据。即便对象是深度拷贝,uid 属性也会保留下来。

通过UIDUtil 类的createUID 生成的id 是一个32位的十六进制数值格式:
E4509FFA-3E61-A17B-E08A-705DA2C25D1C
下面的例子使用createUID 方法创建实现IUID 接口的新的Message 类实例。IUID 接口的getuid 和set uid 方法用于访问对象生成的id 属性:
+展开
-ActionScript
package {
import mx.core.IUID;
import mx.utils.UIDUtil;
[Bindable]
public class Message implements IUID {
public var messageStr:String;
public var fromID:String;
private var _uid:String;
public function Message() {
_uid = UIDUtil.createUID();
}
public function get uid():String {
return _uid;
}
public function set uid(value:String):void {
// Since we'vealreadycreatedtheid,there's
//nothing to be done here, but the method is
//required by the IUID interface
}
}
}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表