질의 함수란?
- 연산을 통해 값을 계산하여 반환하는 함수
(아직도 깨달음을 얻지 못한 자신이 한탄스럽다...)
아래 코드는 대략적인 예이다.
int c = a + b
System.out.println(c);
위 코드에서 덧셈 연산하는 부분을 Extract Function 한다!
public int sum(int a, int b) {
return a + b;
}
...
int c = sum(a, b);
System.out.println(c);
System.out.println(sum(a, b));
리팩토링 7.임시 변수를 질의 함수로 바꾸기
Replace Temp with Query
- 변수를 사용하면 반복해서 동일한 식을 계산하는 것을 피할 수 있고, 이름을 사용해 의미를 표현할 수도 있다.
- 긴 함수를 리팩토링할 때, 임시 변수를 함수로 추출하여 분리한다면 빼낸 함수로 전달해야 할 매개변수를 줄일 수 있다.
리팩토링 14.매개변수를 질의 함수로 바꾸기
Replace Parameter with Query
- 함수의 매개변수 목록은 함수의 다양성을 대변하며, 짧을수록 이해하기 좋다.
- 어떤 한 매개변수를 다른 매개변수를 통해 알아낼 수 있다면 “중복 매개변수”라 생각할 수
있다.
- 매개변수에 값을 전달하는 것은 “함수를 호출하는 쪽”의 책임이다. 가능하면 함수를 호출하
는 쪽의 책임을 줄이고 함수 내부에서 책임지도록 노력한다.
- “임시 변수를 질의 함수로 바꾸기”와 “함수 선언 변경하기”를 통해 이 리팩토링을 적용한
다
리팩토링 19, 21에서도 질의 함수 처리 리팩토링에 대해서 다룰 수 있다.