코딩 규칙 - 명명 규칙
Java에서 열거형 명명 규칙이 있습니까?
내가 선호하는 것은 열거형은 유형이다.예를 들어, 당신은 enum을 가지고 있습니다.
Fruit{Apple,Orange,Banana,Pear, ... }
NetworkConnectionType{LAN,Data_3g,Data_4g, ... }
저는 이름을 붙이는 것에 반대합니다.
FruitEnum
NetworkConnectionTypeEnum
어떤 파일이 enum인지 쉽게 알 수 있지만, 그 후에는 다음과 같은 것도 있습니다.
NetworkConnectionClass
FruitClass
또, 상수에 대해서도 같은 내용을 기재한 좋은 문서가 있습니까?
enum은 클래스이며 클래스 규칙을 따라야 합니다.열거형 인스턴스는 상수이므로 상수에 대한 규칙을 따라야 합니다.그렇게
enum Fruit {APPLE, ORANGE, BANANA, PEAR};
FruitEnum
그그보다 더 FruitClass
를 추가하지 4자(5자)의입니다. 정보를 추가하지 않는 4자(또는 5자)의 문자를 낭비하고 있을 뿐입니다.
이 접근법은 Java™ 튜토리얼의 예제에 권장되며 사용되고 있습니다.
이로 인해 새로운 친구가 많이 생기지는 않을 것입니다만, C#의 유저에게는 다른 가이드 라인이 있습니다.열거 인스턴스는 "Pascal case"(대/소문자 혼합)입니다.stackoverflow 설명 및 MSDN 열거형 명명 가이드라인을 참조하십시오.
C# 시스템과 데이터를 교환하고 있기 때문에 Java의 "정수에는 대문자 이름이 있다"는 규칙을 무시하고 에넘을 정확하게 복사하고 싶습니다.생각해 보면 열거형 인스턴스의 대문자로 제한되는 것은 큰 가치가 없다고 생각합니다.어떤 목적에서는 .name()은 열거 상수와 대소문자를 혼합한 이름을 읽기 쉽게 나타내는 편리한 단축키입니다.
Java 열거형 명명 규칙의 가치에 의문을 제기할 수 있습니다."프로그래밍계의 나머지 절반"이 실제로 다른 스타일을 사용하고 있다는 사실은 우리 자신의 종교를 의심하는 것이 정당하다고 생각하게 만든다.
이미 설명한 바와 같이 열거 인스턴스는 Oracle 웹 사이트(http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)의 문서에 따라 대문자로 지정해야 합니다.
하지만 Oracle 웹사이트(http://www.oracle.com/technetwork/java/javaee/downloads/index.html),에서 JavaEE7 튜토리얼을 보다가 우연히 "Duke's book" 튜토리얼을 발견하게 되었습니다.tutorial\examples\case-studies\dukes-bookstore\src\main\java\javaeetutorial\dukesbookstore\components\AreaComponent.java
정의를
private enum PropertyKeys {
alt, coords, shape, targetImage;
}
규칙에 따르면 다음과 같이 표시되어야 합니다.
public enum PropertyKeys {
ALT("alt"), COORDS("coords"), SHAPE("shape"), TARGET_IMAGE("targetImage");
private final String val;
private PropertyKeys(String val) {
this.val = val;
}
@Override
public String toString() {
return val;
}
}
그래서 오라클의 직원들도 때때로 편리한 거래를 하는 것 같습니다.
코드 베이스에서는, 통상은, 그것들이 속하는 클래스내의 enum을 선언합니다.
그래서 당신의 과일 예시로 과일 클래스가 있는데, 그 안에 Enum이 과일이라고 부릅니다.
Fruit.Fruits.Apple, Fruit.Fruits.Pear
등등.
그 상수가 되다).Fruit.ORANGE_BUSHEL_SIZE
""ConstantManager"(또는 "ConstantManager"(")와 같이)라는 이름의 에 시스템 에 대해 한 "ConstantManager.NULL_INT
참고:
항상 그렇듯이, 당신의 코딩 기준은 저와 다를 수 있기 때문에 YMMV입니다.
여전히 유형이기 때문에 수업에서 사용하는 것과 동일한 명명 규칙을 사용합니다.
이름에 "Class"나 "Enum"을 붙이는 것은 확실히 눈살을 찌푸리게 할 것입니다. 다 있는 FruitClass
a. a. a.FruitEnum
둘 다 필요하게 이 두 한 것 .Fruit
가 상상하는 도 있습니다.(그건 제 추측일 뿐이지만, 제가 상상하고 있는 것과는 다른 상황일 수도 있습니다.)
이름 상수에 대한 최상의 참조는 변수 튜토리얼에서 찾을 수 있습니다.
선택한 이름이 한 단어로만 구성되어 있는 경우 해당 단어의 철자를 모두 소문자로 입력하십시오.두 개 이상의 단어로 구성된 경우 각 후속 단어의 첫 글자를 대문자로 입력하십시오.gearRatio 및 currentGear라는 이름이 이 규칙의 대표적인 예입니다.변수에 정수 값이 저장되어 있는 경우(예: static final int NUM_GEARs = 6), 규칙이 약간 변경되어 모든 문자가 대문자로 표시되고 후속 단어가 밑줄 문자로 구분됩니다.관례상 밑줄 문자는 다른 곳에서는 사용되지 않습니다.
$0.02를 추가할 수 있다면 Pascal Case를 C의 열거값으로 사용하는 것이 좋습니다.
C에서는 기본적으로 글로벌하며 PEER_CONNECTED는 PeerConnected와 달리 매우 피곤합니다.
신선한 공기.
말 그대로 숨쉬기가 편해요.
Java에서는 다른 클래스에서 raw 열거형 이름을 스태틱하게 Import하는 한 이를 사용할 수 있습니다.
import static pkg.EnumClass.*;
이제 이미 다른 방법으로 수식한 미수식 이름을 사용할 수 있습니다.
저는 현재 C코드를 Java로 이식하는 것에 대해 고민하고 있으며, 현재 Java 규약(더 상세하고 장황하며 못생긴 것)과 제 C 스타일 사이에서 '고장'하고 있습니다.
PeerConnected는 PeerState가 됩니다.CONNECTED(접속되어 있는 스위치 문 제외)
이제 후자의 관례에 대해 할 말이 많고, 그것은 좋아 보이지만 다음과 같은 특정한 "이성적인 문구"로 보입니다.if (s == PeerAvailable)
닮다if (s == PeerState.AVAILABLE)
그리운 마음에 이건 의미가 없어요.
선명하기 때문에 자바 스타일을 선호하는 것 같습니다만, 소리를 지르는 코드를 보는 것은 곤란합니다.
Pascal Case가 이미 Java에서 널리 사용되고 있다는 것을 깨달았습니다만, 조금 어긋났을 뿐, 매우 혼란스럽지는 않을 것입니다.
enum MyEnum {VALUE_1,VALUE_2}
(대략) 라고 하는 것과 같다
class MyEnum {
public static final MyEnum VALUE_1 = new MyEnum("VALUE_1");
public static final MyEnum VALUE_2 = new MyEnum("VALUE_2");
private final name;
private MyEnum(String name) {
this.name = name;
}
public String name() { return this.name }
}
그래서 나는 모든 대소문자가 더 정확하다고 생각한다. 하지만 나는 여전히 클래스 이름 규칙을 사용한다. 왜냐하면 나는 모든 대소문자를 싫어하기 때문이다.
언급URL : https://stackoverflow.com/questions/3069743/coding-conventions-naming-enums
'programing' 카테고리의 다른 글
ASCII 문자열 및 엔디안니스 (0) | 2022.08.10 |
---|---|
Vue-test-utils 래퍼가 정의되지 않았습니다. (0) | 2022.08.10 |
반환을 위해 개체를 일반 유형으로 캐스팅 (0) | 2022.08.10 |
C: loop int 초기 선언용 (0) | 2022.08.10 |
C/C++ 회선 번호 (0) | 2022.08.10 |