개요

매개변수는 함수의 동작에 변화를 있는 일차적 수단

매개변수 목록은 적을 수록 좋다.

 

 

매개변수를 질의 함수로 바꾸지 말아야 상황도 있다. 매개변수를 제거하면 피호출 함수에 의존성이 생길 때다.

해당 함수가 몰랐으면 하는 프로그램 요소에 접근해야 하는 상황 생기는 경우(의존성 생김)

 

예시

어떠한 리팩터링을 수행한 이상 매개변수가 필요없어지는 경우



class Order{
    get finalPrice(){
        const basePrice = this.quantity * this.itemPrice;
        let discountLevel;
        if(this.quantity > 100) discountLevel = 2;
        else discountLevel = 1;
        return this.discountedPrice(basePrice, discountLevel);
    }
    discountedPrice(basePrice, discountLevel){
        switch(discountLevel){
            case 1: return basePrice * 0.95;
            case 2: return basePrice * 0.9;
        }
    }
}


class Order{
    get finalPrice(){
        const basePrice = this.quantity * this.itemPrice;
        return this.discountedPrice(basePrice, this.discountLevel);
    }
    get discountLevel(){
        return this.quantity > 100 ? 2 : 1;
    }
    discountedPrice(basePrice, discountLevel){
        switch(discountLevel){
            case 1: return basePrice * 0.95;
            case 2: return basePrice * 0.9;
        }
    }
}


class Order{
    get finalPrice(){
        const basePrice = this.quantity * this.itemPrice;
        return this.discountedPrice(basePrice);
    }
    get discountLevel(){
        return this.quantity > 100 ? 2 : 1;
    }
    discountedPrice(basePrice){
        switch(this.discountLevel){
            case 1: return basePrice * 0.95;
            case 2: return basePrice * 0.9;
        }
    }
}

+ Recent posts