4개 이하가 좋다고 책에는 나와있지만 개인적으로 2개 이하를 유지할 수 있도록 노력하는 것이 좋다고 생각한다.
이렇게 매개변수를 유지한다면 추후 자바에서 기본적으로 제공하는 함수형 인터페이스로의 리펙토링도 가능하기 때문이다.
그리고 같은 타입의 매개변수 여러 개가 연달아 나오는 경우는 해롭다고 한다.
긴 매개변수 목록을 짧게 줄이는 방법 3가지가 있다고 한다.
첫 번째로 여러 메서드로 쪼개는 방법이다.
쪼개진 메서드 각각은 원래 매개변수 목록의 부분집합을 받는다.
잘못하면 메서드가 너무 많아질 수 있지만, 직교성(orthogonality)를 높여 오히려 메서드 수를 줄여주는 효과도 있다.
두 번째로는 매개변수 여러 개를 묶어주는 도우미 클래스를 만드는 것이다.
일반적으로 이런 도우미 클래스는 정적 멤버 클래스로 둔다.
새 번째는 앞서의 두 기법을 혼합한 것으로, 객체 생성에 사용한 빌더 패턴을 메서드 호출에 응용한다고 보면 된다.
이 기법은 매개변수가 많을 때, 특히 그중 일부는 생략해도 괜찮을 때 도움이 된다.
그리고 매개변수의 타입으로는 클래스보다는 인터페이스가 더 낫다.
매개변수로 적합한 인터페이스가 있다면 그 인터페이스를 직접 사용하자.