今天用as3封装一序列化的工具类。其中用到了反射,问题来了。
public function SerializeData(data:String){
try{
var Pclass:Class = Class(getDefinitionByName("pizza.com.serialize." + data));
this.serialize = new Pclass() as Iserialize;
}catch(e:ReferenceError){
throw new ReferenceError(e);
}
}
报传进来的变量未定义。很奇怪。传进来的字符串是data = “XMLDataSerialize”
最后随便定义了一个属性private var xmlserialize:XMLDataSerialize;
就ok了!不明白为啥。那如果要用策略模式写了n多子类那岂不是每一个都要定义一个无用的属性吗??