이름 - 값 쌍에 미리 정의 된 상수를 선언 할 때 'public static final'을 사용하여 'java.util.Properties', 'enums'또는 별도의 클래스를 무작위로 선택했습니다. 값.속성 또는 열거 형 또는 정적 최종
나중에 참조 할 수있는 방법에 대한 지침이 필요합니다.
감사합니다.
이름 - 값 쌍에 미리 정의 된 상수를 선언 할 때 'public static final'을 사용하여 'java.util.Properties', 'enums'또는 별도의 클래스를 무작위로 선택했습니다. 값.속성 또는 열거 형 또는 정적 최종
나중에 참조 할 수있는 방법에 대한 지침이 필요합니다.
감사합니다.
모두 일정한 수명주기에 따라 다릅니다. 상수는 정의에 의해 움직이지 않는 무언가입니다. 올바른 방법을 선택하는 것은 변화 할 가능성과 재 포장 요구에 대한 질문 일 것입니다.
정말 확실하다면 움직이지 않을 것입니다. static final은 갈 길입니다. Pi, 수학 상수, 그런 것들이 좋은 예입니다.
잠재적 인 변화가 있지만 코드 조작 용이성이 필요하고 구형 호환성에 대한 두려움이 없으면 열거 형은 괜찮습니다. 나는 전에 오류 코드를 만들었습니다.
잠재적 인 변경이 있다고 생각되는데이 변경이 코드에 영향을 미치지 않으려면 속성 (리소스 번들 포함)이 더 좋습니다. 라벨 (번역), 초기 설정 등도 좋은 예입니다.
enum 사용 사례에 대한 자세한 내용을 입력하십시오. – SlowAndSteady
@Raj 예를 들어 상수 세트에 대한 열거 형을 사용하십시오. 카드 게임에서는 스페이드, 클럽, 하트 \t 및 다이아몬드가 있습니다. 또 다른 경우는 파일 유형 PNG, GIF 등을 지원할 수 있습니다. 이후 BMP를 추가 할 때 새로운 구현과 일치하는 열거 형을 포함한 다른 API 버전을 사용하면 아무런 단점도 없을 것입니다. – stacker
매우 철저한 답. +1. Raj : 또한 제 답변에 @Sean Reilly의 주석을 기록해 두어야합니다. –
static final
필드는 변수의 상태를 선택할 수있는 닫힌 옵션 집합을 형성 할 수 없을 때 사용됩니다. 반대로, 할 수 있으면 항상 열거 형을 사용합니다.
이제 특성과 상관없이 키 - 값 사전을 유지하려면 속성 유형 개체 또는 때로는지도를 사용할 때입니다.
키 - 값 쌍이 필요하고 키가 닫힌 옵션으로 설정된 경우 java.util.EnumMap –
을 사용하여 열거 형과 맵 접근 방식을 결합하는 것이 좋습니다. 또한, 도메인 별 의미를 가진 닫힌 집합의 * really * 값이 아니라 상수를 사용하는 경우에는 '정적 최종'이 더 좋습니다. 또한 자신의 클래스에서만 상수를 사용하는 경우'public' 수정자를'private'으로 변경하십시오. –
한 가지 더 고려해야 할 사항 -이 문자열은 다른 버전으로 변경됩니까? 즉, 프랑스어 버전, 중국어 버전, "고급"버전이 있습니까? 그렇다면 Properties/ResourceBundles 등을 사용할 수 있습니다.
고정 소수점 집합이 고정되어 있고 자주 변경하지 않아야하는 경우 Enum을 사용하십시오. 자주 변경되는 경우 이전 버전과의 호환성을 유지하기가 어렵습니다. 클라이언트 서버 아키텍처에서 둘 다 서로 다른 버전의 Enum이있는 경우 예컨대
서버 : public enum Priority{ HIGH,LOW,MEDIUM,AVERAGE
}
클라이언트 : public enum Priority{ HIGH,LOW,MEDIUM}
서버는 다음 클라이언트가 예외가 발생합니다 클라이언트에 Priority.AVERAGE를 보내는 경우의가 있다고 가정 해 봅시다.
저는 개인적으로 public static final 값을 가진 클래스 파일을 가지고 있습니다. 나는 쉽게 찾아 가서 알아볼 곳을 알고 있습니다. 특정 클래스에 열거 형이나 다른 것을 넣기 시작하면 이제 어떤 클래스인지 기억해야합니다. 성능에 관한 한, 나는 모른다. 나는 다른 누군가가 대답 할 수있을 것이라고 확신한다. –