플렉스 애플리케이션에 재사용 된 정적 문자열 상수를 어디에 저장해야합니까?

StackOverflow https://stackoverflow.com/questions/976579

문제

많은 클래스를 공유하는 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)
    ...
도움이 되었습니까?

해결책

나는 단일 상수 클래스 대신 논리적 의미로 상수를 구성한다고 말한다.

당신이 당신이 어떤 종류의 작업 상태로 보여주는 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