Eri*_*air 2 apache-flex constants cairngorm actionscript-3
我有两个共享许多类的Cairngorm MVC Flex应用程序(同一个应用程序的完整版和精简版).我已将这些类放入一个编译为SWC的Flex库项目中.两个应用程序都使用一些静态String常量.现在,我将它们存储在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";
...
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎不是存储这些常量的最佳位置,特别是现在它们被两个应用程序使用,并且我已经将每个应用程序设置为拥有自己的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";
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样引用它:
if (value == Constant.SUCCESS)
...
Run Code Online (Sandbox Code Playgroud)
Her*_*rms 13
我会说按逻辑意义组织常量,而不是单个Constants类.
假设您将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";
}
Run Code Online (Sandbox Code Playgroud)
我发现这样可以更容易地记录某些内容的预期值.而不是说"返回SUCCESS,FAILURE,RUNNING,......",你可以说"返回TaskState.*值之一".
您可以将所有这些放在一个包中用于常量,或者您可以将常量类与使用它们的类放在同一个包中.