본문 바로가기

Programing/JVM(Java, Kotlin)

[Java] Effective Java의 Dogma

어제 코드리뷰를 받다가 아래와 같은 댓글을 보았다.

from보다는 of가 더 적절할 것 같네요.

from: 매개변수를 하나 받아서 해당 타입의 인스턴스를 반환하는 형변환 메서드
of: 여러 매개변수를 받아 적합한 타입의 인스턴스를 반환하는 집계 메서드

이펙티브 자바의 첫 아이템 '생성자 대신 정적 팩토리 메서드를 고려해보자'가 적용된 부분에 대한 리뷰이다.

리뷰하신 분은 책의 내용을 comment에 같이 적어두었다.

 

이펙티브 자바에 나오는 것 같아서 찾아보니 아래와 같이 맞았다. 한글판은 12~13쪽이다.

12쪽의 from에 대한 설명

 

13쪽에 대한 설명

평소에 Junior 개발자들이 이펙티브 자바를 스터디를 할 때 참관하면서 교조주의(敎條主義)에 빠지는 것을 자주 경계했었다. 교조주의란 무언가에 대한 굳은 믿음과 그러한 가치관을 뜻하는 의미로 도그마(Dogma)라고도 사용한다.

이 말의 출처가 종교(카톨릭)에서 였는데 마치 성경의 글자 하나하나에 의미를 부여해서 고집이나 집념을 하는 것이 비슷하였다.

 

내가 of대신 from을 사용했던 이유는 어떤 객체에서 다른 객체로 변환한다는 의미를 담고 사용을 했다.

리뷰를 하신분은 from에서 오는 것이 하나가 아닌 여러개라서 of를 써야 한다는 의견을 달은 것이다.

 

나는 자바에서 그렇게 사용하지 않는 반례(Duration 클래스)를 찾아서 댓글로 첨부하였고, 컨벤션 안건에 올려서 토의해보자라고 하고 마무리를 했다.


 

저자의 의도가 궁금했다면 원서를 보면된다.

참고로 원서에는 저자의 의도이탤릭(기울임체)으로 표시되어 있다. 왜 한국어판에서는 사라졌는지 모르겠다. (9쪽에 있다.)

from: type-conversion method / of: aggregation method