我想在这些中消除魔术字符串的使用:
BindingUtils.bindProperty(obj1, "propertyName", obj2, ["childObj", "anotherProperty"]);
或
var ddl:DropDownList = new DropDownList();
ddl.labelField = "propertyName";
只需输入类似的内容即可:
ddl.labelField = GetPropertyName(ComplexType.propertyName);
这将允许轻松重构,并在属性名称更改时消除运行时错误。
有什么想法吗?
答案 0 :(得分:4)
不确定我是否正确理解您的问题。您可以在单独的类中轻松定义静态常量,以消除所有魔术字符串。
// In class ConstantContainer public static const PROPERTY_NAME:String = "propertyName"; // In anywhere else ddl.labelField = ConstantContainer.PROPERTY_NAME;
答案 1 :(得分:1)
'魔术字符串'是必需的。请记住,这是一种动态语言,对所有事物都有利有弊。这是其中一个缺点。
您可以采取一些措施来限制静态属性等错误。
答案 2 :(得分:0)
关于类似主题的Stack Overflow讨论,以及您可能感兴趣的一些想法: