해결된 질문
작성
·
309
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
안녕하세요 수업중에 의문점이 생겨서 질문드립니다.
public class AppConfig {
private MemberRepository memberRepository(){
return new MemoryMemberRepository();
}
private DiscountPolicy discountPolicy(){
return new RateDiscountPolicy();
}
public MemberService memberService(){
return new MemberServiceImpl(memberRepository());
}
public OrderService orderService(){
return new OrderServiceImpl(memberRepository(),discountPolicy());
}
}
객체의 인스턴스를 만들때 이렇게 정의한것과
public class AppConfig {
private MemberRepository memberRepository = new MemoryMemberRepository();
private DiscountPolicy discountPolicy = new RateDiscountPolicy();
public MemberService memberService(){
return new MemberServiceImpl(memberRepository);
}
public OrderService orderService(){
return new OrderServiceImpl(memberRepository,discountPolicy);
}
}
이렇게 정의했을때의 차이점이 있나요?
제 생각에는 오히려 위의 경우가 Memberservice,Orderservice에서 memberRepository()를 두번 사용하니 new로 서로 다른 인스턴스가 생성되어 만약 memorymemberRepository의 저장소가 static이 아니라면 오류가 생길것 같은데 제 생각이 잘못된 것인지 궁금합니다,
감사합니다 ㅎㅎ 저도 다음강의를 보고 뭐가 다른것인지 깨우쳤네요 좋은하루되세요 😀