인프런 커뮤니티 질문&답변

오리쉐리님의 프로필 이미지
오리쉐리

작성한 질문수

스프링 핵심 원리 - 기본편

@Configuration과 싱글톤

MemberServiceImpl, OrderServiceImpl을 쓴 이유

작성

·

284

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

ConfigurationSinglgetonTest 클래스 내부에서MemberService 타입이 아닌 , MemberServiceImpl 타입을 써준이유가 궁금해서 책을 찾아보았는데,

 

MemberService를 써주면 memberService 변수로 접근할수있는것은 MemberService 인터페이스에 선언된 것들(재정의한 메소드)에만 접근할수있고, 추가로 MemberServiceImpl 클래스에 선언한것에는 접근할수없다.

그렇기때문에 MemberServiceImpl 타입을 써줘야memberService 변수로 MemberService 인터페이스에 선언된 것들 + 추가로 MemberServiceImpl 클래스에 선언한것에 접근할수있다.

이러한 이유로 영한님께서도 MemberServiceImpl, OrderServiceImpl 타입으로 작성하신걸까요?

답변 1

0

안녕하세요. gomdole03님, 공식 서포터즈 OMG입니다.
.

강의 5분 30초~ 6분 사이의 영한님 설명을 참고해주세요 :)

구체 클래스(Impl)에 정의되어 있는 getMemberRepository()를 호출하기 위함이며, 사용해서는 안된다고 설명해주십니다.


.
감사합니다.

오리쉐리님의 프로필 이미지
오리쉐리
질문자

무엇을 사용해서는 안된다는건가요??

MemberService 타입을 사용해서는 안된다는건가요??

그럼 제 질문대로 이해하는게 맞을까요??

무엇을 사용해서는 안된다는건가요??

=>

강의 6분 영한님 말씀인 "원래는 구체 타입으로 꺼내면 안좋아요" 를 설명드린 것입니다.

구체클래스를 꺼낸 이유는 구체클래스에만 정의되어 있는 메서드인 getMemberRepository를 사용하기 위함이 맞습니다. 

오리쉐리님의 프로필 이미지
오리쉐리

작성한 질문수

질문하기