정액 정책 → 정률 정책

  • 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을 하면 마지막으로 실행된 코드가 실행

 

※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.

+ Recent posts