인프런 커뮤니티 질문&답변

hp님의 프로필 이미지
hp

작성한 질문수

스프링 핵심 원리 - 기본편

주문과 할인 도메인 개발

메소드 인자

해결된 질문

작성

·

230

4

안녕하세요. ^^

이번 강의에서 구현한 메소드 중 하나인 discount()에 관해 질문드립니다.

스펙은 int discount(Member member, int price) 이었는데요,

discount() 내에서는 회원 등급.. member.getGrade()만 사용하는데 Grade 타입이 아닌 Member 타입 객체를 받는 이유가 궁금합니다.

답변 2

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. hp님 좋은 질문입니다.

이것은 작은 설계의 고민인데요.

해당 부분을 인터페이스로 만들어두었습니다.

그래서 향후 할인을 위한 여러 구현체가 만들어 질 수 있습니다. 그 구현체들이 회원의 다양한 정보를 바탕으로 할인을 할 수 있어야 해서, Member을 받도록 했습니다. 이 부분은 정답이라기 보다는, 고객의 요구사항을 잘 듣고, 확장 포인트를 고민했을 때, Grade가 더 나을 수도 있고,(의존하는게 더 줄어드니까요). 향후 확장성을 고려해서 의존관계가 좀 늘어도 Member를 받는게 더 나을 수 있습니다. 결국 요구사항에 맞추어 적절한 트레이드 오프가 필요합니다.

감사합니다.

1

hp님의 프로필 이미지
hp
질문자

감사합니다. ^^

hp님의 프로필 이미지
hp

작성한 질문수

질문하기