[Spring] 새로운 구조와 할인 정책 적용

이제 처음으로 돌아가 정액 할인 정책을 정률 할인 정책으로 변경해보자. 

기존에는 이를 변경했을 때, 클라이언트 코드가 영향을 받았었다. 하지만, 현재는 AppConfig의 등장으로 사용 영역구성 영역(객체를 생성하고 구성)으로 나눠졌기 때문에 아래의 그림과 같이 구성 영역의 코드만 변경해주면 된다.

FixDiscountPolicy를 RateDiscountPolicy로 변경해도 구성 영역만 영향을 받을 뿐, 사용 영역은 전혀 영향을 받지 않는다. 

 

...
    private DiscountPolicy discountPolicy() {
        //return new FixDiscountPolicy();
        return new RateDiscountPolicy();
    }
...

AppConfig의 discountPolicy() 부분만 수정하면 된다. 클라이언트 코드인 OrderServiceImpl을 비롯해서 사용 영역의 어떤 코드도 변경할 필요가 없다. 

 

'스프링(Spring) > Spring' 카테고리의 다른 글

[Spring] 스프링으로 전환하기  (0) 2022.07.30
[Spring] IoC, DI, 컨테이너  (0) 2022.07.29
[Spring] AppConfig 리팩토링  (0) 2022.07.29
[Spring] 관심사 분리  (0) 2022.07.13
[Spring] 객체 지향 원리 적용  (0) 2022.07.09