본문 바로가기

웹 개발/Spring

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

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


이전 포스팅에서 AppConfig를 사용해서 구조를 변경함으로써 책임과 역할을 분리했다. 이제 새로운 할인 정책을 적용하려면 AppConfig만 변경하면 된다. 

public class AppConfig {
    
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }

    private MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }

    public OrderService orderService() {
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }

    public DiscountPolicy discountPolicy() {
        return new RateDiscountPolicy();
    }
}

=> discountPolicy() 메서드만 변경하면 된다. 

클라이언트 코드인 OrderServiceImpl은 변경할 필요가 없다. 

 

 


* 인프런 '스프링 핵심 원리 -기본편' 강의를 참고하여 작성했습니다.