: 올바른 다음 Java 클래스의 이름은 무엇입니까
DVDPlayer
또는 DvdPlayer
?
: 올바른 다음 Java 클래스의 이름은 무엇입니까
DVDPlayer
또는 DvdPlayer
?
답변:
대답은 Java에는 이것에 대한 단일 표준이 없다는 것이므로 .NET Framework 디자인 지침에서이를 지정하고 싶습니다.
이제 주제를 벗어난 것에 대해 슬래 밍하기 전에 Java 및 .NET Framework의 클래스 이름 지정 지침은 매우 유사하므로 .NET 지침이 설득력있는 참조로 유용합니다.
두 지침 모두 약어가 널리 알려져 있고 잘 이해 될 때 약어를 사용하는 것이 좋습니다. DVD 또는 XML은이를 잘 보여주는 예입니다. 즉각 인식 할 수는 있지만 확장 버전을 인식하는 데 시간이 조금 더 걸립니다.
.NET Framework 지침은 두 가지 일반적인 약어 'ID'와 'OK'가 식별자에 사용될 수 있다는 점을 제외하고 약어 (약어와 달리)를 사용하지 않는 것이 좋습니다. 약어를 사용하는 경우 Id
카멜 케이스 식별자의 첫 단어 (파스칼 케이스 식별자와 반대)를 제외하고 항상 대소 문자를 혼합하여 사용합니다 .
Java에서는이 규칙이 일부만 준수됩니다. 살펴보세요 철자를 혼합하는 방법에서 getID
와 getId
JCL을에 있습니다. (해당 페이지 아래로 스크롤). 에서 자바 8 버전 하지만, getId
PascalCase 대회가 요즘 선호 암시하는, 더 많은 사용된다. 가능한 경우 약어를 완전히 피하는 것이 가장 좋습니다.
.NET Framework 지침에 따르면 'IO'와 같은 두 글자 약어는 두 글자 모두 대소 문자가 동일해야합니다. 따라서 클래스 이름과 같은 PascalCase 식별자의 DBRate
경우 지역 변수와 같은 camelCase 식별자의 경우가 있습니다 ioChannel
.
이것은 분명히 Java의 일반적인 관행 인 것처럼 보입니다.
.NET Framework 지침에서는 머리 글자에 세 글자 이상을 사용하여 camelCase 식별자의 첫 단어를 제외하고 PascalCase 및 camelCase 식별자에 대소 문자를 혼용 할 것을 권장합니다. 따라서 클래스 이름의 XmlDocument
경우 로컬 변수의 이름을 지정할 수 있습니다 httpRequest
.
이 규칙이 항상 Java에서 준수되는 것은 아닙니다. 4 문자 약어는 일반적으로 대소 문자를 혼합 한 것으로 보이지만 JCL조차도 3 문자 약어와 일치하지 않습니다. 'URL', 'XML', 'SQL'및 'DOM'과 같이 대부분 대문자 인 것처럼 보이지만 'Jar'와 같은 예외가 있습니다.
Java의 경우 :
4 개 이상의 문자 약어의 경우 대소 문자를 혼합하여 사용하십시오. 표준 라이브러리가이 작업을 수행하므로 이해가됩니다.
3 자 약어의 경우 JCL과 같이 모두 대문자를 사용하거나 .NET Framework와 같이 대소 문자를 혼합하여 사용할 수 있습니다. 어느 쪽이든, 일관성을 유지하십시오.
2 자 약어의 경우 모두 대문자를 사용하십시오.
2 자 약어의 경우 Java에는 실제로 표준이 없지만 다른 이름과의 일관성으로 인해 모든 대문자가 더 좋아지지 않는 한 대소 문자를 혼합하여 사용하는 것이 좋습니다.
IpAddress
많은 사람들에게 끔찍한 것입니다. 개인적으로 Java 코드를 작성해야 할 때 3 글자 약어의 대소 문자를 혼합하여 두 글자만을 특별한 경우로 남겨 둡니다.
"올바른"답변이 없습니다. 다른 도구와 더 잘 어울리는 일련의 관행과 규칙.
따라서 나는 선호한다 DvdPlayer
. Eclipse에서 Ctrl+ Shift+를 수행 T하고 각 단어의 첫 글자로 수업을 선택할 수 있으므로 더 유용 합니다.
나는 둘 다 야생에서 사용되는 것을 보았고 Sun은 DVDPlayer
스타일 을 추구하는 것 같습니다 . DvdPlayer
그래도, 그래야 여러 개의 연속 약어가 있더라도 단어 경계가 어디에 있는지 분명하기 때문에 선호합니다 HTTPURLConnection
.
다음과 같은 방식으로 클래스의 개별 인스턴스를 정의하고 싶습니다.
Catalogue catalogue;
Person person;
따라서를 사용하면 그 DVDPlayer
인스턴스를 무엇이라고 부릅니까? dVDPlayer
? 따라서 DvdPlayer
클래스 이름을 선택 하므로 인스턴스 이름을 다음과 같이 지정할 수 있습니다 dvdPlayer
.
DVDPlayer dvdPlayer;
?
dvdPlayer
, 당신이 돌아갈 때, 당신은 얻을 것 DvdPlayer
입니다.
DvdPlayer -> dvd_player
하지만 DVDPlayer -> d_v_d_player
. DVDPlayer를 dvd_player로 자동화 할 수있는 방법이 없습니다.
getDvdPlayer()
보다 낫습니다 . 그리고 약어에서 게터를 소문자로 명명하는 경우 일관성과 예측 가능성을 위해 클래스 이름을 동일하게 유지하는 것이 가장 좋습니다. getDVDPlayer()
foo.dvdPlayer
JavaSE 클래스, Apache Commons 및 Spring의 일부 예 :
HttpURLConnection
HTTPAddress
UrlPathHelper
AopProxy
ISBNValidator
따라서 그것은 중요하지 않습니다.
SRS
이상 SoftwareRequirementSpecification
?
다른 사람들이 지적했듯이, 프로젝트마다 다른 스타일입니다. 구아바 및 GWT와 같은 Google 프로젝트는 DvdPlayer
스타일을 선호합니다 .
https://google.github.io/styleguide/javaguide.html#s5.3-camel-case
DvdPlayer
스타일에 대한보다 일반적인 Google 컨벤션 링크 : google-styleguide.googlecode.com/svn/trunk/…
에서 태양 자바 문서 :
클래스 이름은 명사이어야하며 대문자로 된 각 내부 단어의 첫 글자와 대소 문자를 혼합해야합니다. 수업 명을 단순하고 설명하기 쉽게 유지하십시오. 전체 단어를 사용하지 않는 두문자어 및 약어를 사용하십시오 (URL 또는 HTML과 같은 긴 형식보다 약어가 훨씬 널리 사용되지 않는 한).
DVDPlayer
표준이지만 DvdPlayer
드문 일이 아닙니다.
당신은 더 자주 보지 못합니다 getId
. 그것은 아마도 ID가 "Identity"의 단축이라는 생각 때문일 것입니다. 실제로는 신원 문서의 이니셜입니다.
HttpURLConnection
종종 혼합 관례의 예로 제시됩니다. 그러나 URL에서 프로토콜 이름으로 사용되는 "http"는 소문자 여야합니다 (대문자는 종종 허용됨).
여기에는 "올바른"것이 없으며 기본 설정 만 있습니다.
Sun은 "URL"과 "HTML"을 포함하는 클래스의 이름을 일관되게 지정하지만 javadocs에서 모든 대문자와 낙타 문자를 모두 사용하는 HTTP를 봅니다.
개인적으로 DvdPlayer를 선호합니다.
DigitalVersatileDiscPlayer
앞으로 나아갈 길입니다.