2009-06-10 3 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

Хорошие идеи. –

 Смежные вопросы

  • Нет связанных вопросов^_^