
AppConfig의 역할이 뚜렷하게 보이지 않아서 리팩터링하여 역할을 드러나게 구현해보자.
리팩터링이란?
결과의 변경 없이 코드의 구조를 재조정함을 뜻한다.
지금 현재의 appConfig 코드만 봐서는 다음 다이어그램이 한눈에 들어오지 않는다.

public class AppConfig {
public MemberService memberService(){
return new MemberServiceImpl(memberRepository());
}
private static MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
public OrderService orderService(){
return new OrderServiceImpl(memberRepository(),discountPolicy());
}
public DiscountPolicy discountPolicy(){
return new FixDiscountPolicy();
}
}