프로그램언어/Refactoring
[ Refactoring ] Inline Temp
에블릿
2010. 11. 24. 11:36
간단한 수식의 결과값을 가지는 임시 변수가 있고, 그 임시 변수가 다른 리팩토링을 하는데 방해가 된다면
이 임시변수를 참조하는 부분을 모두 원래의 수식으로 바꿔라
동기
절차
double basePrice = anOrder.basePrice(); return (basePrice > 1000)
return (anOrder.basePrice() > 1000)
동기
- 대부분의 경우 Inline Temp는 Replace Temp with Query의 한 부분으로 사용된다.
- 진짜 동기는 그쪽에 있다.
- Inline Temp가 자신의 목적으로 사용되는 유일한 경우
- 메소드 호출의 결과값이 임시 변수에 대입되는 경우
- 임시 변수가 Extract Method와 같은 리팩토링에 방해가 된다면
- 인라인화 하라
절차
- 임시 변수를 final로 선언한 다음 컴파일 하라
- 이것은 임시 변수에 값이 단 한번만 대입이 되고 있는지를 확인하기 위한 것이다
- 임시변수를 참조하고 있는 곳을 모두 찾아 대입문의 우변에 있는 수식으로 바꾼다.
- 각각의 변경에 대해 컴파일과 테스트를 한다
- 임시 변수의 선언과 대입문을 제거한다
- 컴파일과 테스트 한다.