3

これらのマジックストリングの使用を排除したい:

BindingUtils.bindProperty(obj1, "propertyName", obj2, ["childObj", "anotherProperty"]);

また

var ddl:DropDownList = new DropDownList();
ddl.labelField = "propertyName";

次のように入力するだけでよいでしょう。

ddl.labelField = GetPropertyName(ComplexType.propertyName);

これにより、リファクタリングが容易になり、プロパティ名が変更されたときのランタイムエラーがなくなります。

何か案は?

4

3 に答える 3

4

私があなたの問題を正しく理解しているかどうかわからない。別のクラスで静的定数を簡単に定義して、すべてのマジックストリングを排除できます。

//クラスConstantContainer内

public static const PROPERTY_NAME:String = "propertyName";

//他の場所で
ddl.labelField = ConstantContainer.PROPERTY_NAME;
于 2011-03-18T15:26:42.607 に答える
1

「マジックストリング」が必要です。これは、すべてに長所と短所がある動的言語であることを忘れないでください。これはそれらの短所の1つです。

静的プロパティのようにエラーを制限するためにできることがいくつかあります。

于 2011-03-18T17:16:14.140 に答える
0

同様のトピックに関するスタックオーバーフローの議論と、あなたが興味を持つ可能性のあるいくつかのアイデア:

オブジェクトvs文字列vs列挙型の使用

于 2011-03-21T13:45:02.013 に答える