본문 바로가기
Spring/스프링_정리

[베이직] 스프링의 핵심 원리 이해

by 숭늉다섯 2023. 12. 20.

 

이러한 형태의 서비스를 만들어야 함

순수하게 자바로 개발한 후에 고정할인이 아니라 금액에 따라 가격을 정하려고 함수를 만들었을때 

문제가 발생함

- 새로 개발한 정률 할인 정책을 적용하려고 하니 클라이언트 코드인 주문 서비스 구현체도 함께 변경해야함 주문 서비스 클라이언트가 인터페이스인 'DiscountPolicy' 뿐만 아니라구체 클래스인 'FixDiscountPolicy' 도 함께 의존 DIP 위반

 

더보기

AppConfig를 추가함으로 전체적인 컨트롤을 할 수 있도록 함

package hello.core;
 import hello.core.discount.DiscountPolicy;
 import hello.core.discount.FixDiscountPolicy;
 import hello.core.member.MemberRepository;
 import hello.core.member.MemberService;
 import hello.core.member.MemberServiceImpl;
 import hello.core.member.MemoryMemberRepository;
 import hello.core.order.OrderService;
 import hello.core.order.OrderServiceImpl;
 public class AppConfig {
     public MemberService memberService() {
         return new MemberServiceImpl(memberRepository());
}
     public OrderService orderService() {
         return new OrderServiceImpl(
                 memberRepository(),
                 discountPolicy());
}
     public MemberRepository memberRepository() {
         return new MemoryMemberRepository();
}
     public DiscountPolicy discountPolicy() {
         return new FixDiscountPolicy();
}
}