2009-06-10 15 views
2

我有兩個共享許多類的Cairngorm MVC Flex應用程序(相同應用程序的完整版本和精簡版本)。我已經將這些類放入Flex庫項目中,並編譯爲SWC。兩個應用程序都使用一些靜態的String常量。現在,我在ModelLocator中存儲這些:我應該在Flex應用程序中存儲重用的靜態字符串常量?

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) 
    ... 

回答

13

我想說組織通過邏輯意義上的常量,而不是一個單一的常量類。

假設您顯示爲某種任務狀態的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"; 
} 

我覺得這可以更容易地記錄期望值對於某些內容的意義。而不是說「返回成功,失敗,正在運行......」,你可以說「返回TaskState。*值之一)。

你可以把所有這些放在一個包中作爲常量,或者你可以有不斷的課程與使用它們的課程在同一個包中生活

+0

好主意。謝謝。 – 2009-06-10 17:48:26

相關問題