-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
메소드 인자
20.12.01 00:35 작성 조회수 150
4
안녕하세요. ^^
이번 강의에서 구현한 메소드 중 하나인 discount()에 관해 질문드립니다.
스펙은 int discount(Member member, int price) 이었는데요,
discount() 내에서는 회원 등급.. member.getGrade()만 사용하는데 Grade 타입이 아닌 Member 타입 객체를 받는 이유가 궁금합니다.
답변을 작성해보세요.
5
김영한
지식공유자2020.12.02
안녕하세요. hp님 좋은 질문입니다.
이것은 작은 설계의 고민인데요.
해당 부분을 인터페이스로 만들어두었습니다.
그래서 향후 할인을 위한 여러 구현체가 만들어 질 수 있습니다. 그 구현체들이 회원의 다양한 정보를 바탕으로 할인을 할 수 있어야 해서, Member을 받도록 했습니다. 이 부분은 정답이라기 보다는, 고객의 요구사항을 잘 듣고, 확장 포인트를 고민했을 때, Grade가 더 나을 수도 있고,(의존하는게 더 줄어드니까요). 향후 확장성을 고려해서 의존관계가 좀 늘어도 Member를 받는게 더 나을 수 있습니다. 결국 요구사항에 맞추어 적절한 트레이드 오프가 필요합니다.
감사합니다.
1
답변 2