Spring-2021.12.07

Jonguk Kim·2021년 12월 7일
0

Spring 강의

목록 보기
7/7

1. AppConfig 리팩터링

public class AppConfig {

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

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

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

    public DiscountPolicy discountPolicy() {
        return new FixDiscountPolicy();
    }
}
  • new MemoryMemberRepository() 부분 중복 제거
  • MemoryMemberRepository를 다른 구현체로 변경할 때 한 부분만 변경하면 된다.
  • AppConfig 를 보면 역할과 구현 클래스가 한눈에 들어온다.

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

  • 정액 할인 정책 정률% 할인 정책으로 변경 (AppConfig가 있는 구성 영역만 변경하면 됨, 사용 영역은 변경할 필요가 없음)
  • AppConfig의 등장으로 애플리케이션이 크게 사용 영역과, 객체를 생성하고 구성(Configuration)하는 영역으로 분리
public DiscountPolicy discountPolicy() {
    	//return new FixDiscountPolicy();
        return new RateDiscountPolicy();        // 할인정책 변경
}
profile
Just Do It

0개의 댓글