메서드 시그니처를 신중히 설계하라

김종준·2023년 7월 27일
0

이펙티브자바

목록 보기
44/63

메서드 시그니처를 신중히 설계하라

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

4개 이하가 좋다고 책에는 나와있지만 개인적으로 2개 이하를 유지할 수 있도록 노력하는 것이 좋다고 생각한다.

이렇게 매개변수를 유지한다면 추후 자바에서 기본적으로 제공하는 함수형 인터페이스로의 리펙토링도 가능하기 때문이다.

그리고 같은 타입의 매개변수 여러 개가 연달아 나오는 경우는 해롭다고 한다.

긴 매개변수 목록을 짧게 줄이는 방법 3가지가 있다고 한다.

첫 번째로 여러 메서드로 쪼개는 방법이다.

쪼개진 메서드 각각은 원래 매개변수 목록의 부분집합을 받는다.

잘못하면 메서드가 너무 많아질 수 있지만, 직교성(orthogonality)를 높여 오히려 메서드 수를 줄여주는 효과도 있다.

두 번째로는 매개변수 여러 개를 묶어주는 도우미 클래스를 만드는 것이다.

일반적으로 이런 도우미 클래스는 정적 멤버 클래스로 둔다.

새 번째는 앞서의 두 기법을 혼합한 것으로, 객체 생성에 사용한 빌더 패턴을 메서드 호출에 응용한다고 보면 된다.

이 기법은 매개변수가 많을 때, 특히 그중 일부는 생략해도 괜찮을 때 도움이 된다.

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

매개변수로 적합한 인터페이스가 있다면 그 인터페이스를 직접 사용하자.

0개의 댓글