본문 바로가기
Code_Refactoring

임시변수를 메서드 호출로 전환 (Replace Temp with Query)

by LeviiOS 2023. 3. 11.
반응형

임시변수를 메서드 호출로 전환 (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 메서드를 호출하여 중복 코드를 제거하고 가독성을 높일 수 있습니다.

단, 이 기법을 적용할 때는 메서드 호출로 대체할 임시변수의 계산식이 비용이 큰 경우 성능에 영향을 미칠 수 있으므로, 

이를 고려하여 적용해야 합니다. 

또한, 메서드 호출이 여러 번 발생할 경우 임시변수를 사용하는 것이 성능에 더 유리할 수 있으므로 이를 고려하여 적용해야 합니다.

 

감사합니다.

반응형