【问题标题】:Where should I store reused static string constants in Flex application?我应该在哪里存储 Flex 应用程序中重用的静态字符串常量?
【发布时间】:2010-11-01 20:56:01
【问题描述】:

我有两个共享许多类的 Cairngorm 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)
    ...

【问题讨论】:

    标签: apache-flex actionscript-3 constants cairngorm


    【解决方案1】:

    我会说按逻辑含义组织常量,而不是单个常量类。

    假设您有 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.* 值之一),而不是说“返回 SUCCESS、FAILURE、RUNNING……”。

    您可以将所有这些放在一个常量包中,或者您可以将常量类与使用它们的类放在同一个包中。

    【讨论】:

      猜你喜欢
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 2021-03-18
      • 2022-01-11
      • 2017-05-30
      相关资源
      最近更新 更多