SOLID를 이용한 좋은 객체 지향 설계

예제 내용 : 회원(저장소)과 주문(할인) 도메인 구현

주문 서비스 도메인 개발

public class OrderServiceImpl implements OrderService {
//  private final DiscountPolicy discountPolicy = new FixDiscountPolicy();
    private final DiscountPolicy discountPolicy = new RateDiscountPolicy();
}

인터페이스에만 의존하도록 설계를 변경

public class OrderServiceImpl implements OrderService {
    private final DiscountPolicy discountPolicy;
}

AppConfig.java