메서드 이름은 신중하게 고르라
· 표준 작명 관습을 따라라(규칙 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)보다 더 알기 쉽다.
ㄴ 또한 나중에 새로운 온도 단위를 추가해도 알아보기 쉽다.
'IT > Programming' 카테고리의 다른 글
<Effective Java> RULE 38 인자의 유효성을 검사하라 (0) | 2023.04.27 |
---|---|
<Effective Java> RULE 39 필요하다면 방어적 복사본을 만들라. (0) | 2023.04.27 |
<Effective Java> RULE 41 오버로딩할 때는 주의하라 (0) | 2023.04.26 |
<Effective Java> RULE 42 var args는 신중히 사용하라 (0) | 2023.04.26 |
<Effective Java> RULE 43 null 대신 빈 배열이나 컬렉션을 반환하라 (0) | 2023.04.26 |