• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

DiscountPolicy discount()의 매개변수 관련 질문

24.03.29 00:36 작성 24.03.29 00:41 수정 조회수 86

0

public interface DiscountPolicy {

    /**
     *
     * @return 할인 금액
     */
    int discount(Member member, int price);
}

discount()의 매개변수 int price는 FixDiscountPolicy에서는 사용되지 않고 RateDiscountPolicy에서만 사용됩니다. 모든 구현 클래스에서 사용되지는 않는 매개변수를 인터페이스에 선언했다는 점이 잘 이해가 되지 않습니다. 모든 구현 클래스에서 사용되지 않는 매개변수를 인터페이스 level에 선언해도 괜찮은 것인지 여쭤보고 싶습니다.

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2024.03.29

안녕하세요. 도토리님, 공식 서포터즈 코즈위버입니다.

조건이 단순한 쪽과 복잡한 쪽 모두가 사용할 수 있는 인터페이스를 만들려면 복잡한 쪽으로 맞출수밖에 없습니다. 예제 상황에서 int price 를 생략한다면 RateDiscountPolicy 는 계산을 할 수 없습니다.

파라미터가 지저분 해지는 것을 감내하거나 혹은 Member만 받는 메서드와 Member,int 를 받는 메서드로 분리하거나 해야 하지요. 적절한 타협이 필요한 부분입니다.

감사합니다.