새로운 구조와 할인 정책 적용
이전 포스팅에서 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은 변경할 필요가 없다.
* 인프런 '스프링 핵심 원리 -기본편' 강의를 참고하여 작성했습니다.
'웹 개발 > Spring' 카테고리의 다른 글
[Spring 기본] IoC, DI, 컨테이너 (0) | 2024.08.13 |
---|---|
[Spring 기본] 좋은 객체 지향 설계의 5가지 원칙의 적용 (0) | 2024.08.13 |
[Spring 기본] AppConfig 리팩토링 (0) | 2024.08.13 |
[Spring 기본] 관심사의 분리 (0) | 2024.08.13 |
[Spring 기본] 새로운 할인 정책 개발 (0) | 2024.08.12 |