본문 바로가기
Effective Java

[Effective Java] 아이템51 메서드 시그니처를 신중히 설계하라

by byeongoo 2021. 7. 4.

■ 메서드 이름을 신중히 짓자

  • 항상 표준 명명 규칙을 따라야하고, 같은 패키지에 속한 다른 이름들과 일관되게 짓는게 최우선 목표이다. 그 다음 목표는 개발자 커뮤니티에서 널리 받아들여지는 이름을 사용하는 것이다.

 

■ 편의 메서드를 너무 많이 만들지 말자

  • 모든 메서드는 각각 자신의 소임을 다해야한다. 메서드가 너무 많은 클래스는 익히고, 사용하고, 문서화하고, 테스트하고 유지보수하기 어렵다. 메서드가 너무 많으면 이를 구현하는 사람과 사용하는 사람 모두를 고통스럽게한다.

 

■ 매개 변수 목록은 짧게 유지하자

  • 4개 이하가 좋다. 특히 같은 타입의 매개변수가 연달아 여러개 나오는 경우가 특히 해롭다. 순서를 바꿔 입력해도 그대로 컴파일되고 실행된다.
  • 첫번째로 여러 메서드로 쪼개서 매개변수를 줄이는 방법이있다.
  • 두번째로 매개변수 여러 개를 묶어주는 도우미 클래스를 만드는 것이다. 일반적으로 이런 도우미 클래스는 정적 멤버 클래스로 둔다. 특히 매개변수 몇개를 하나의 독립된 개념으로 볼 수  있을 때 추천하는 방법이다.
  • 세번째는 앞의 두 기법을 혼합한 것이다. 객체 생성에 사용한 빌더 패턴을 메서드 호출에 응용한다고 보면 된다.

 

매개변수 타입으로는 클래스 보다 인터페이스가 낫다.

  • 클라이언트에 특정 구현체만 사용하게 제한하게된다.

 

■ boolean보다는 원소 2개 짜리 enum 이 낫다

  • 열거 타입을 사용하면 코드를 읽고 쓰기가 쉬워진다. 나중에 선택지를 추가하기도 쉽ㄷ.