Java에서 명명 규칙 'of'는 무엇을 의미합니까?
우리가 자바 8에서 볼 수 있듯이, 같은 '의'라는 이름의 많은 방법이있다 Stream.of()
, Optional.of()
와 같은 많은 라이브러리 actorOf
Akka에가.
이 "의"는 무엇을 의미합니까? 영어 단어 "of"또는 "Object Factory"와 같은 약어입니까?
네, 영어 단어입니다. 일반적으로 표현이 영어 구문처럼 읽히도록 선택됩니다. 예를 들어, Stream.of(3, 4)
는 "3과 4의 흐름"처럼 보여야합니다. 이것은 "숫자 3과 4로 구성된 흐름"의 축약 버전과 비슷합니다.
전통적으로 래퍼 클래스를 살펴보면 모두 주어진 값 유형의 래퍼 클래스 인스턴스를 빌드하는valueOf(XXX)
메서드 를 포함 합니다 .
Integer.valueOf(int)
Double.valueOf(double)
Float.valueOf(float)
Java는 1 일차부터이 명명 규칙을 따르고 있습니다. 마찬가지로 Java-8에 도입 된 대부분의 클래스에는이 of(...)
메서드가 많이 포함되어 있습니다 .
Stream.of(...)
LocalDate.of(year, month, dayOfMonth)
Instant.ofEpochSecond(epochSecond)
and many more.
valueOf
또는 of
메서드를 사용할 수 있을뿐만 아니라 다른 클래스 내에서 특정 목적이나 작업 유형을 제공하는 메서드가 거의 없으며 해당 작업을 나타내는 가장 적합한 이름을 할당했습니다.
- parseXXX () : 주어진 문자열 입력을 구문 분석합니다. 예 :
Integer.parseInt(str), Double.parseDouble(), Date.parse(datestr)
etc - get (field) : 객체에서 필드 정보를 검색합니다. 예 :
Calendar.get(field), LocalDate.get(TemporalField)
etc. - format () : 다른 표현으로 변환. 예 :
String.format(), SimpleDateFormat.format(), DateTimeFormatter.format()
etc
이러한 명명 규칙은 Java8 DateTime API에서 많이 사용됩니다. 이 메서드 명명 규칙을 확인하십시오.
정적 팩토리 메서드에 사용되는 일반적인 명명 규칙 입니다.
Joshua Bloch는 Effective Java (2nd Edition) , 항목 1 : 생성자 대신 정적 팩토리 메소드 고려 (강조 추가됨) 의 패턴 및 연관된 이름 지정 규칙에 대해 다음을 언급합니다 .
... (a) 정적 팩토리 메소드의 단점은 다른 정적 메소드와 쉽게 구별 할 수 없다는 것입니다. 생성자가하는 방식으로 API 문서에서 눈에 띄지 않으므로 생성자 대신 정적 팩토리 메서드를 제공하는 클래스를 인스턴스화하는 방법을 파악하기 어려울 수 있습니다. Javadoc 도구는 언젠가 정적 팩토리 메소드에주의를 끌 수 있습니다. 그 동안 클래스 또는 인터페이스 주석의 정적 팩토리에주의를 기울이고 일반적인 명명 규칙을 준수하여 이러한 단점을 줄일 수 있습니다 . 다음은 정적 팩토리 메소드의 일반적인 이름입니다.
valueOf
-대략적으로 말해 매개 변수와 동일한 값을 가진 인스턴스를 반환합니다. 이러한 정적 팩토리는 효과적인 형식 변환 방법입니다.
of
-EnumSet (항목 32)에 의해 대중화 된 valueOf의 간결한 대안입니다....
따라서 다른 사람들이 지적했듯이 "of"는 영어 단어 "of"를 의미하며 약어가 아닙니다. 그러나이 규칙을 사용하는 이유 중 하나는 정적 팩토리가 생성자와 비교하여 JavaDocs의 별도 섹션에 표시되지 않기 때문에 클래스가 팩토리 메소드를 제공하는지 쉽게 알 수 있도록하기 위함입니다.
제 생각에 간결하고 설명 적으로 이름이 지정된 정적 팩토리를 사용하는 추가 이점은 코드 가 생성자 호출로 흩어져있는 경우에는 해당되지 않는 prose처럼 읽는다new
는 것입니다.
참고 URL : https://stackoverflow.com/questions/48256270/what-does-the-naming-convention-of-mean-in-java
'developer tip' 카테고리의 다른 글
Google Developers Console에서 프로젝트를 삭제하는 방법 (0) | 2020.11.10 |
---|---|
Angular2에서 원시 HTML을 바인딩하는 방법 (0) | 2020.11.10 |
화면 유지 비활성화 (0) | 2020.11.10 |
Qt 애플리케이션에서 현재 작업 디렉토리 가져 오기 (0) | 2020.11.10 |
객체가 자바 스크립트 딥 카피 또는 얕은 카피의 배열로 푸시됩니까? (0) | 2020.11.10 |