반응형
임시변수를 메서드 호출로 전환 (Replace Temp with Query)은 임시변수를 메서드 호출로 대체하여 코드 중복과 가독성 문제를 해결하는 리팩토링 기법입니다. 이 기법을 적용하면 임시변수를 사용하지 않으므로 코드 중복과 가독성 문제를 해결할 수 있습니다.
예를 들어, 다음과 같은 코드가 있다고 가정해보겠습니다.
func calculateTotalPrice(price: Double, count: Int) -> Double {
let totalPrice = price * Double(count)
let isDiscountable = count > 10
var finalPrice = totalPrice
if isDiscountable {
finalPrice *= 0.9
}
return finalPrice
}
위 코드에서는 totalPrice와 isDiscountable이라는 두 개의 임시변수를 사용하여 finalPrice를 계산합니다.
이를 임시변수를 사용하지 않도록 메서드 호출로 대체할 수 있습니다.
func calculateTotalPrice(price: Double, count: Int) -> Double {
var finalPrice = price * Double(count)
if count > 10 {
finalPrice *= 0.9
}
return finalPrice
}
func isDiscountable(count: Int) -> Bool {
return count > 10
}
위 예시에서는 isDiscountable 메서드를 추가하여 count > 10을 검사하는 코드를 재사용하도록 만들었습니다. 이를 통해 isDiscountable 메서드를 호출하여 중복 코드를 제거하고 가독성을 높일 수 있습니다.
단, 이 기법을 적용할 때는 메서드 호출로 대체할 임시변수의 계산식이 비용이 큰 경우 성능에 영향을 미칠 수 있으므로,
이를 고려하여 적용해야 합니다.
또한, 메서드 호출이 여러 번 발생할 경우 임시변수를 사용하는 것이 성능에 더 유리할 수 있으므로 이를 고려하여 적용해야 합니다.
감사합니다.
반응형
'Code_Refactoring' 카테고리의 다른 글
임시변수 분리 (Split Temporary Variable) (0) | 2023.03.11 |
---|---|
직관적 임시변수 사용 (Introduce Explaining Variable) (0) | 2023.03.11 |
임시변수 내용 직접 삽입 (Inline Temp) (0) | 2023.03.11 |
메서드 내용 직접 삽입 (0) | 2023.03.11 |