私は、Flexアプリケーションに静的な文字列定数を再利用どこに保存する必要がありますか?
-
13-09-2019 - |
質問
私は、多くのクラスを共有する2つのケアンゴームMVC Flexアプリケーション(同じアプリのフルバージョンとliteのバージョン)を持っています。私は、SWCとしてコンパイルFlexライブラリプロジェクトにこれらのクラスを入れています。両方のアプリケーションがいくつかの静的な文字列定数を使用します。今、私はModelLocatorにこれらを格納しています:
package model
{
[Bindable]
public class ModelLocator
{
public static var __instance:ModelLocator = null;
public static const SUCCESS:String = "success";
public static const FAILURE:String = "failure";
public static const RUNNING:String = "running";
...
}
}
これは単に、特に今、彼らは両方のアプリケーションで使用されていることを、これらの定数を格納するための最良の場所のように思われない、と私は、セットアップ、独自のModelLocatorクラスを持っている各アプリケーションを持っています。プラスこれはModelLocatorクラスの目的ではありません。
私の共有ライブラリにこれらの定数を格納するための良い方法でしょうか?
私はちょうどこのようなクラスを作成する必要があります。?
package
{
[Bindable]
public class Constants
{
public static const SUCCESS:String = "success";
public static const FAILURE:String = "failure";
public static const RUNNING:String = "running";
}
}
とし、このようにそれを参照します:
if (value == Constant.SUCCESS)
...
解決
私の代わりに、単一の定数クラスで、論理的な意味での定数を整理言うと思います。
あなたはタスクの状態のいくつかの種類として表示され、あなたには、いくつかのより多くの(ちょうどここにものを作る)ファイルアクセスのエラーコードとして使用されてきたその3を持っていると言います
public class TaskStates {
public static const SUCCESS:String = "success";
public static const FAILURE:String = "failure";
public static const RUNNING:String = "running";
}
public class FileErrors {
public static const FILE_NOT_FOUND:String = "filenotfound";
public static const INVALID_FORMAT:String = "invalidformat";
public static const READ_ONLY:String = "readonly";
}
私は、これはそれが簡単に期待値が何かのためにあるものを文書化することができます見つけます。代わりに "SUCCESS、FAILURE、RUNNINGのいずれかを返します..." というのは、あなただけの「TaskStateの1つを返しますと言うことができます。*値)。
あなたは、定数のために、単一のパッケージにこれらすべてを置くことができるか、一定のクラスがそれらを使用するクラスと同じパッケージに住んでいる可能性があります。