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());
}
private static MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
public OrderService orderService(){
return new OrderServiceImpl(
memberRepository(), discountPolicy());
}
public DiscountPolicy discountPolicy(){
return new FixDiscountPolicy();
}
}
위에 코드를 정리하자면
MemberService, OrderService에서 memberRepository와 discountPolicy 인터페이스에 의존하고 있으며,
memberRepository는 MemoryMemberRepository 구현 클래스를
dicountPolicy는 FixDiscountPolicy를 구현 클래스로 사용하고 있다는 의미 이다.
'오답노트' 카테고리의 다른 글
Tomcat을 외장서버로 사용해보기 (0) | 2023.08.18 |
---|---|
IntelliJ test Class name dosen't match (0) | 2023.07.13 |
실수하지말라고 박제합니다. (0) | 2023.07.09 |
Could not resolve all files for configuration ':runtimeClasspath'. (0) | 2023.07.09 |
ailed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. (0) | 2023.07.09 |
댓글