2009-06-10 6 views
2

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 eingefügt, das als SWC kompiliert wird. Beide Anwendungen verwenden einige statische String-Konstanten. Gerade jetzt, ich bin zu speichern diese in der ModelLocator:Wo sollte ich wiederverwendete statische String-Konstanten in der Flex-Anwendung 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"; 

     ... 
    } 
} 

Das gerade scheint 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 haben eine eigene ModelLocator-Klasse. Außerdem ist dies nicht der Zweck der ModelLocator-Klasse.

Was wäre eine gute Möglichkeit, diese Konstanten in meiner gemeinsam genutzten Bibliothek 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 wie folgt aus: Referenz:

if (value == Constant.SUCCESS) 
    ... 

Antwort

13

würde ich die Konstanten durch logische Bedeutung sagen organisieren, statt eines einzigen Konstantenklasse.

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

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 diese finden erleichtert es zu dokumentieren, was die erwarteten Werte für etwas sind. Anstatt zu sagen: "Entweder ERFOLG, FAILURE, RUNNING, ...", können Sie einfach sagen "Gibt einen der TaskState. * -Werte zurück."

Sie könnten alle diese in einem einzigen Paket für Konstanten oder Sie könnte die konstanten Klassen leben in dem gleichen Paket wie die Klassen, die sie verwenden

+0

Gute Ideen, danke. –