[개발] - Spring/핵심 원리 구현
새로운 구조와 할인 정책 적용
완벽한 장면
2024. 1. 17. 01:11
새로운 구조와 할인 정책 적용
- 정액 할인 정책을 정률% 할인 정책으로 변경해보자.
- FixDiscountPolicy => RateDiscountPolicy
AppConfig의 등장으로
애플리케이션이 크게 사용 영역과, 객체를 생성하고 구성(Configuration)하는 영역으로 분리되었다.
그림 - 사용, 구성의 분리
그림 - 할인 정책의 변경
변경한 코드
// 애플리케이션의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 책임을 가지는 별도의 설정 클래스
public class AppConfig {
//역할들을 드러나게 바꾼다!
// ctrl alt M
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();
return new RateDiscountPolicy();
}
}
728x90
반응형