IT/Programming / / 2023. 4. 27. 09:19

<Effective Java> RULE 40 메서드 시그너처는 신중하게 설계하라

반응형

 

메서드 이름은 신중하게 고르라

· 표준 작명 관습을 따라라(규칙 56)

· 이해하기 쉬우면서도 같은 패키지안의 다른 이름과 일관성이 유지되는 이름

· 좀 더 널리 합의된 사항에도 부합하는 이름을 고르는 것

 

편의 메서드(Convenience Method)를 제공하는데 너무 열을 올리지 마라

· 모든 메서드는 맡은 일이 명확하고 거기에 충실해야한다(pull its weight)

· 클래스에 메서드가 너무 많으면 학습, 사용, 테스트, 유지보수 등이 어렵다.(특히 인터페이스)

· 단축 메서드는 자주 쓰일 때만 추가하라.

 

인자 리스트(Parameter list)는 길게 만들지 마라

· 4개 이하가 되도록 애쓰라

· 긴 인자를 짧게 줄이는 방법

ㄴ 여러 메서드로 나누는것

ㄴ 도움 클래스를 만들어 인자들을 그룹별로 나누는 방법(규칙 22)

ㄴ 빌더 패턴을 고쳐서 객체 생성되신 메서드 호출에 적용한다.(규칙 2) (인자가 많다면 setter메서드를 여러번 호출하고 원하는 인자가 설정될 시 execute메서드 호출하여 계산)

 

자료형이 같은 인자들은 길게 연결된 인자 리스트보다 특히 더 위험하다.

· 사용자가 인자 순서를 착각 할 수 있다.

 

인자의 자료형으로는 클래스보다 인터페이스가 좋다.(규칙 52)

· HashMap 인자를 자료형으로 사용하는것보다 Map으로 사용하여 Hashtable, TreeMap 등 모든 Map의 하위클래스 객체를 인자로 받을 수 있다.

 

인자의 자료형으로는 boolean을 사용하는것 보다는, 원소가 2개인 enum자료형을 쓰는것이 낫다.

· 자동완성이 갖춰진 IDE를 쓴다면 특히 좋다.

ㄴ Thermometer자료형 아래 enum자료형의 값을 인자로 취하는 정적 팩토리메서드에서

 Thermometer.newInstance(TempleratureScale.CELSIUS)이 Thermometer.newInstance(true)보다 더 알기 쉽다.

ㄴ 또한 나중에 새로운 온도 단위를 추가해도 알아보기 쉽다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유