Frage

Ich habe zwei Cairngorm MVC Flex-Anwendungen (eine Vollversion und Lite-Version der gleichen App), die viele Klassen teilen. Ich habe diese Klassen in ein Flex-Bibliotheksprojekt setzen, die als SWC kompiliert. Beide Anwendungen verwenden einige statische String-Konstanten. Gerade jetzt, ich bin diese im ModelLocator speichern:

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";

        ...
    }
}

Dies scheint einfach nicht wie der beste Ort, um diese Konstanten zu speichern, vor allem jetzt, dass sie von beiden Anwendungen verwendet werden, und ich habe Setup jede Anwendung ihre eigene ModelLocator Klasse haben. Außerdem ist dies nicht der Zweck der ModelLocator Klasse.

Was ist ein guter Weg sei, diese Konstanten in meinem Shared Library zu speichern?

Sollte ich nur eine Klasse wie folgt aus:?

package
{
    [Bindable]
    public class Constants
    {
        public static const SUCCESS:String = "success";

        public static const FAILURE:String = "failure";

        public static const RUNNING:String = "running";
    }
}

und dann verweisen sie wie folgt aus:

if (value == Constant.SUCCESS)
    ...
War es hilfreich?

Lösung

Ich würde sagen, die Konstanten, die durch logische Bedeutung organisieren, statt einer einzigen Konstanten Klasse.

Sagen Sie bitte die 3 haben Sie als eine Art Task-Zustand zeigen, und Sie haben einige mehr, die als Fehlercodes für den Dateizugriff (nur machen Sachen hier oben) verwendet werden:

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";
}

Ich finde, das macht es einfacher zu dokumentieren, was die erwarteten Werte für etwas sind. Statt „Gibt entweder Erfolg, Misserfolg, Laufen, ...“ zu sagen, können Sie einfach sagen: „Gibt einen des Taskstate. * -Werte).

Sie könnten alle diese für Konstanten in einem einzigen Paket geschnürt, oder Sie können die konstanten Klassen leben im gleichen Paket wie die Klassen haben, die sie verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top