작성
·
438
·
수정됨
0
public class AppConfig {
public MemberService memberService() {
return new MemberServiceImpl(new MemoryMemberRepository());
}
public OrderService orderService() {
return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy());
}
}
Appconfig 에서
orderService() 조회하면(호출하면)
( 생성자니까 Appconfig 객체가 생성되면 호출된다 )
( MemoryMemberRepository() 객체 생성 ,
FixDiscountPolicy() 객체 생성 )
--> 이 생성된 객체의 참조값을 OrderServiceImpl 객체 생성할 때 생성자로 전달
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
OrderServiceImpl 에 생성자 호출 - 참조값이 넘어감
OrderServiceImpl 객체의
MemberRepository 에 MemoryMemberRepository 할당
DiscountPolicy 에 FixDiscountPolicy 할당
나중에 할인 정책이 변경되어 수정해야한다면
OrderServiceImpl 변경하지않고 AppConfig 에서만 변경하면 됨
public OrderService orderService() {
return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy());
}
제가 자바 기초 문법 (생성자? ) 을 깊이 몰라서 ,, ㅜ
이렇게 이해했는데
맞는지 확인 부탁드립니다 !!