Inline Function, 함수 인라인하기를 알아보자.
요약

코드
function getRating(driver) {
return moreThanFiveLateDeliveries(driver) ? 2 : 1;
}
function moreThanFiveLateDeliveries(driver) {
return driver.numberOfLateDeliveries > 5;
}function getRating(driver) {
return driver.numberOfLateDeliveries > 5 ? 2 : 1;
}배경
- 간접 호출은 유용할 수도 있지만 쓸데 없는 간접 호출은 거슬릴 뿐이다.
- 이렇게 간접 호출을 제거하고 함수를 간략하게 만드는 것을 함수 인라인하기 라고 말한다.
절차
- 다형 메서드인지 확인한다.
- 메서드가 서브클래스에서 오버라이드 되는지 확인한다.
- 오버라이드 되지 않는다면 진행한다.
- 인라인할 함수를 호출하는 곳을 모두 찾는다.
- 각 호출문을 함수 본문으로 교체한다.
- 하나씩 교체할 때마다 테스트한다.
- 이렇게 하면 시간 날 때마다 필요한 부분만 바꿀 수 있다.
- 함수 정의(원래 함수)를 삭제한다.
따라하기
function rating(aDriver) {
return moreThanFiveLateDeliveries(aDriver) ? 2 : 1;
}
function moreThanFiveLateDeliveries(aDriver) {
return aDriver.numberOfLateDeliveries > 5;
}moreTanFiveLateDeliveries를 사용하는 쪽을 함수 본문으로 바꾼다.
function rating(aDriver) {
return aDriver.numberOfLateDeliveries > 5 ? 2 : 1;
}