3. Replace Temp with Query ■ 임시 변수의 문제점 - 임시 변수는 임시로 사용되고, 특정 부분에서만 의미를 가지므로 문제가 된다. ■ 임시 변수를 질의 메소드로 바꾸면? - 임시 변수는 메소드 내에서만 사용된다. 질의 메소드는 클래스 어디서든 접근 가능하다. - 임시 변수가 사용되면 메소드가 길어지는 경향이 있다. 질의 메소드를 호출하기 때문에, 메소드 길이가 짧아진다.
4. Replace Temp with Query ■ 질의 메소드로 바꾸는 절차 - 임시 변수에 값이 한번만 대입되는지 확인한다. 값이 여러 번 대입되면, 임시 변수를 나누어서 작은 단위로 처리한다. - 대입문의 우변을 메소드로 추출한다. 추출된 메소드를private으로 선언한다. 나중에 public으로 바꿀수도 있다. - Inline Temp(140)를 적용한다. 대부분 inline이 가능한 변수들이다.
5. Replace Temp with Query ■ 예제 - 2개의 임시 변수를 제거하고 싶다. basePrice, discountFactor
11. Introduce Explaining Variable ■ 설명하는 이름으로 된 임시변수 - 수식이 복잡해져 알기 여려운 상황에서 수식의 결과를 설명하는 잘 지어진 이름의 임시 변수로 설명할 수 있다. - 그러나 임시변수는 좋지 않다. Extract Method를 추천한다. - 복잡한 로직일 경우 1. 복잡한 조건을 임시변수로 리펙토링 (Introduce Explaining Variable) 2. 임시변수를 질의로 대체하기 (Replace Temp with Query)
13. Split Temporary Variable ■ 각각의 임시변수 분리하기 - 임시변수는 긴 코드의 결과값을 참조하기 위해 보관하는 용도로 사용된다. - 이런 종류의 변수는 값이 “한번만” 설정되어야 한다. - 각각의 용도에 맞게 변수를 따로 지정해야 한다. 하나의 임시변수를 두 가지 용도로 사용하면, 코드를 보는 사람이 매우 혼란스러울 수 있다.