플렉스 애플리케이션에 재사용 된 정적 문자열 상수를 어디에 저장해야합니까?
-
13-09-2019 - |
문제
많은 클래스를 공유하는 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 중 하나를 반환합니다.* 값).
이 모든 것을 상수를위한 단일 패키지에 넣거나 상수 클래스를 사용하는 클래스와 동일한 패키지로 라이브를 만들 수 있습니다.
제휴하지 않습니다 StackOverflow