我有两个共享许多类凯恩戈姆MVC Flex应用程序(一个完整版本,而相同的应用程序的精简版的版本)。我已经把这些类合并到编译为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";
}

我觉得这使得它更容易记录什么的期望值是什么。不要说“返回要么成功,失败,跑步,...”,你就可以说“返回TaskState之一。*值)。

您可以把所有这些在一个封装常量,或者你可以有固定的班住在同一个封装中使用它们的类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top