정액 정책 → 정률 정책
- FixDiscountPolicy에서 RateDiscountPolicy로 변경
- 어떤 부분을 변경해야 할까?
- AppConfig의 등장으로 애플리케이션이 사용 영역과 객체 생성 및 구성 영역으로 분리
사용, 구성의 분리
할인 정책의 변경
- AppConfig만 변경하면 FixDiscountPolicy → RateDiscountPolicy로 변경이 가능
- FixDiscountPolicy → RateDiscountPolicy로 변경해도 구성 영역만 영향을 받음
- 사용 영역은 전혀 영향을 받지 않음
AppConfig 코드 변경
public DiscountPolicy discountPolicy() {
// return new FixDiscountPolicy();
return new RateDiscountPolicy();
}
- 이 부분만 변경하면 할인 정책이 변경됨
- AppConfig 에서 할인 정책 역할을 담당하는 구현을 FixDiscountPolicy → RateDiscountPolicy 객체로 변경
- 이제 할인 정책을 변경해도, 애플리케이션의 구성 역할을 담당하는 AppConfig만 변경
- 구성 영역은 당연히 변경
- 클라이언트 코드인 OrderServiceImpl 를 포함해서 사용 영역의 어떤 코드도 변경할 필요가 없음
- TIP: Shift + F10을 하면 마지막으로 실행된 코드가 실행
※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.