리팩토링 - 메서드명 변경
Rename Method
설명
- 메서드명만 보고 해당 메서드의 의도를 알 수 있어야 한다.
- 해당 메서드의 기능을 설명하는 주석을 생각한 후, 그 주석을 메서드명으로 변경하는 방식을 추천한다.
- 메서드 이름이 적절하지 않다면 반드시 변경한다.
- 만약, 매개변수를 재정렬해서 코드를 알아보기 쉬워진다면 매개변수 재정렬을 실시한다.
- cf. 매개변수 추가, 매개변수 제거
방법
- 메서드 시그니처가 상위클래스나 하위클래스에 구현되어 있는지 검사한다.
- 만약 구현되지 않았다면 구현된 부분들을 대상으로 다음의 단계들을 실시한다.
예제)
public String getTelephoneNumber(){
return (" (" + _officeAreaCode + ")" + _officeNumber);
}
1. 새로운 이름으로 메서드를 선언하고, 원래 메서드의 내용을 새 메서드로 복사, 적절히 수정한다.
2. 원본 메서드 참조 부분을 찾아서, 새 메서드를 참조하게 수정한다. (수정할 때마다 테스트를 실시한다.)
public String getTelephoneNumber(){
return getOfficeTelephoneNumber();
}
public String getOfficeTelephoneNumber(){
return ("(" +_officeAreaCode + ")" + _officeNumber);
}
3. 원본 메서드를 삭제한다. (이때 원본 메서드가 인터페이스에 들어가 있어서 삭제할 수 없다면, 그 메서드를 그대로 두고 deprecated로 표시하자.
public String getOfficeTelephoneNumber(){
return ("(" +_officeAreaCode + ")" + _officeNumber);
}
4. 컴파일과 테스트를 실시한다.