인프런 커뮤니티 질문&답변
안녕하세요. discount 2번 사용에 관해 질문드립니다.
작성
·
155
0
안녕하세요! 일전에,
ㅡㅡ
고객쪽에서 MemberRepository m = new MemoryMemberRepository();
라는 예제에서는 Memory에서 오류가 발생했을 때, JdbcMemberRepository();를 사용하도록 코드를 짜고 싶습니다.
그렇다면, client쪽에서
try{
MemberRepository m = new MemoryMemberRepository();
} catch() {
MemberRepository m = new JdbcMemberRepository();
}
ㅡㅡ
위와 같은 질문을 드렸고, List, Map강의를 보라하셔서 봤습니다.이번 강의에 나온 discount코드를 가지고 추가적인 기획과 함께 코드를 짜보았습니다.
1. discountCode는 "rate"가 우선순위 1위이고, price가 0이면 오류를 반환하다.
2. 1번 오류가 발생했을 때, "fix" discount 로직을 실행한다.
public int discount(Member member, int price, String discountCode) {
// ... 로직은 강의와 동일
}
ㅡㅡㅡㅡㅡ
discount를 실행하는 구현체는 아래와같습니다.
class Something {
public doDiscount() {
try{
discountService.discount(..., "rate")
}catch{
discountService.discount(..., "fix")
}
....
}
}
결론적으로 제가 궁금한건, 같은 추상화로 구현된 로직 중, 첫번째 로직이 실패했을때 두번째 로직을 실행시켜라 라는 상황은 try, catch로 구현하는 것이 맞는지 궁금합니다





